python – Django:应用程序级变量
我已经创建了一个Django-rest-framework应用程序.它公开了一些API,它在
MySQL DB中执行一些get / set操作.
我需要向另一台服务器发出HTTP请求,并将此响应与通常的响应一起搭载.我正在尝试使用自制的HTTP连接池来发出HTTP请求,而不是在每个请求上建立新的连接. 保留此应用级HTTP连接池对象的最合适位置是什么? 我环顾四周寻找它&有多个解决方案,每个都有一些缺点.这里有一些: >在diff文件中创建池的单例类,但这不是一个好的pythonic方法.关于为什么不使用单一设计模式,有各种各样的讨论. 另外,我不知道汇集一个pooler有多聪明? (:P) >它应该只包含进口和与此相关的事情. >要使用会话,但我想这更有意义,如果它是用户会话特定的东西,如用户特定的数字等 此外,对象需要可序列化.我不知道如何序列化HTTP连接池. 存储此类应用/全局级别变量的最佳位置是什么? 解决方法
一种可能的解决方案是实现自定义Django中间件,如
https://docs.djangoproject.com/ja/1.9/topics/http/middleware/中所述.
您可以在中间件的__init__方法中初始化HTTP连接池,该方法仅在第一次请求时调用一次.然后,在process_request期间启动HTTP请求,并在process_response检查它已完成(或等待它)并将该响应附加到内部请求. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |