Python/Django中的Global Request变量是否可用?

我写了一个插件,发送一个信号来激活我的代码.但是,它不会将用户请求对象发送到我的代码.我正在寻找一种方法来检索当前请求而无需修改主应用程序.我找不到任何与全局请求相关的文档(比如PHP中的$_SERVER [‘REMOTE_ADDR’]).

我想知道在Python / Django中是否有任何变量可以做.

最佳答案
据我所知,您可以使用以下方法定义Django视图:

def detail(request, some_param):
  # [...]

参数请求包含有关HTTP请求的信息. request.META [‘HTTP_X_FORWARDED_FOR’]例如返回客户端的IP地址.

如果你的插件与请求有关,它的类和函数可能会从你的视图中实例化/调用.这意味着您需要将当前请求对象传递给它,因为拥有全局请求对象是没有意义的.
在PHP中,这是可能的,因为每个请求都会导致整个代码从头开始执行,但在Django中,请求由服务器调度并使用HttpRequest对象在框架中传递.有关更多信息,另请参阅Django文档的this部分.

转载注明原文:Python/Django中的Global Request变量是否可用? - 代码日志