【发布时间】:2010-01-12 16:08:33
【问题描述】:
我今天注意到一个奇怪的行为:在下面的示例中,config.CLIENT 变量似乎在跨请求时保持持久性——即使视图传递了一个完全不同的 client_key,获取客户端的查询也只执行一次(每个请求),然后 config.CLIENT 变量保持分配状态。
这似乎不是数据库缓存问题。
mod_python 和测试服务器都会发生这种情况(测试服务器重新启动时会重新分配变量)。
我在这里缺少什么?
#views.py
from my_app import config
def get_client(client_key=None):
if config.CLIENT == None:
config.CLIENT = get_object_or_404(Client, key__exact=client_key, is_active__exact=True)
return config.CLIENT
def some_view(request, client_key):
client = get_client(client_key)
...
return some_response
# config.py
CLIENT = None
【问题讨论】:
-
你为什么希望模块被 mod_python“重置”?
-
“请看下面”?什么?请使用其他信息更新您的问题,以便其他有类似问题的人得到帮助。
-
“请在下面查看我的评论”,关于 gruszczy 的回答,关于 为什么 我期待这个:“我期待这个,因为我来自 PHP(duh ),其中变量将在请求结束时被销毁。"