需要时访问django请求对象

django-contrib-requestprovider的Python项目详细描述


说明

gadjo.requestprovider允许访问django的httprequest 对象,而不是显式地将其传递到 代码。

用法

将gadjo的requestprovider中间件添加到django的设置中。py:

中间件类=( 'gadjo.requestprovider.middleware.requestprovider', … )

无论何时您需要请求对象(从您的模型、窗体等):

从gadjo.requestprovider.signals导入get_请求

http_request=get_request()

实施细节

除了保存对当前请求的引用外,requestprovider 中间件还将自己注册为任何人的接收器 需要请求对象。

当发出get_request()时,将调用中间件来处理 发出信号并返回请求对象。 这是因为django中的信号是同步处理的。 get_request()对请求访问器singlehandlersignal(signal)调用send() 对象并将当前请求返回给调用方。 单handlersignal是确保它只注册的信号 授权接收人。这是为了确保没有人会注册处理程序 (可能是错误的)请求访问器信号,因为这应该是 仅由我们的requestprovider中间件处理。

类单手柄信号(信号):

allowed_receiver=’gadjo.requestprovider.middleware.RequestProvider’

信号的connect()方法被重写为只允许注册 接受者。

待办事项

这不是线程安全的。但是,如果你在线程环境中运行django应用程序,我认为你并不真正知道自己在做什么。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java出现编译错误,我不理解   java在gnu-trove库中是否有任何有序映射?   java Servlet应该有映射,但找不到Servlet   java时间和第二期显示1:10,而不是13:10   java Play Framework 1.2.7 Heroku更新崩溃   线程“main”java中的opencsv异常。lang.NoClassDefFoundError:org/apache/commons/lang3/ObjectUtils   selenium在java中隐藏警告消息   java使用ID引用将JSON实体反序列化为POJO   java无法在JRE 8中加载字体   一个线程中的异常/错误会使整个应用程序停止吗?   java访问重复子规则的元素标签;e、 g.用ANTLR解析(1,2,3)中的a   java如何从平移旋转中找到新坐标   使用HTML Java小程序托管jar文件存在安全问题   java如何按频率而不是字母顺序排列字符串数组   java清除bufferedReader和块以获得更多输入   java解密SAML2断言