我想知道Django应用程序中是否存在“全局计数器”,就像我在Tomcat的Servlet Context范围中存储“全局计数器”一样。
类似
。getServletContext()方法的getAttribute( “计数器”); 计数器++;
答案 0 :(得分:1)
当您编写django应用程序(或任何wsgi应用程序)时,您事先不知道您的应用程序最终是在单个服务器上运行,还是多线程运行,还是多处理运行,甚至是多个单独运行机器作为负载平衡策略的一部分。
如果您要制定约束“我的应用程序仅适用于单进程服务器”,那么您可以使用以下内容:
from django import settings
settings.counter += 1
然而,这种限制通常是不可行的。所以你必须使用外部存储到你的柜台。
如果你想把它保存在内存中,可能是memcached
也许您只需将请求记录到此视图即可。因此,当您希望计数器只计算日志中的条目数时。
日志可以是基于文件的,也可以是数据库中的表,只需在models.py
上定义新模型。