如何在DJango中的每个页面刷新上重新加载全局变量

sti*_*per 0 python django

这是我的问题.在第一次运行脚本后,DJango继续存储所有全局对象.例如,您在views.py中全局实例化的对象将在那里,直到您重新启动应用服务器.除非您的对象与可能超时的某些外部资源相关联,否则这很好.现在我想要纠正的方式是某种工厂方法,它检查对象是否被实例化,如果不是,则创建它,然后返回它.但是,这会失败,因为自上一页请求以来对象存在,因此工厂方法始终返回在第一个请求期间实例化的对象.

我正在寻找的是一种在每个请求的基础上触发某事的方法.我已经看到了通过实现自己的中间件来实现这一目标的方法,但我认为这样做太过分了.有没有人知道一些保留方法或其他每个请求触发器.

nos*_*klo 6

简单:不要使用全局对象.如果您想在视图中使用对象,请在视图中实例化它,而不是全局.这样它将在视图结束后收集.

  • 此外,您可以将会话用于"全局"(实际上是持久性)对象,直到用户注销. (2认同)