我正在使用Django Framework 1.7及其网络服务器。
我有一个自定义类,我在其中声明一个静态变量,一个列表,其中我附加了一些值:
class my_class:
list = []
def __init__( self, *args, **kwargs ):
[...]
def append_value(self,value):
self.list.append( value )
我使用静态变量,因为我调用此函数的次数不同。 在单页加载期间,我的类运行良好,但我注意到my_class.list永不过期。
要重置列表,我必须重新启动网络服务器。
我来自PHP和Perl,每次刷新页面时,如果不以某种方式保存它们,则清除所有变量。
我使用会话,当然,但我不会将该列表保存到会话中,至少不是自愿的。
注意:在脚本执行期间,我不知道第一次或最后一次调用my_class()。
每次重新加载/更改页面时,如何重置列表?
编辑:
好我尝试更好地解释我的情况:
return HttpResponse(code,content_type="application/x-javascript")
)效果很好 BUT :
以下是问题:
很难解释,我希望它现在清楚。
PS:我错了,我没有在中间件中启动课程。PPS:我知道将JavaScript代码放在Python代码中是不寻常的,但我正在测试这个解决方案。
答案 0 :(得分:0)
将其定义为实例变量而不是类变量。
class my_class:
def __init__( self, *args, **kwargs ):
self.list = []
请注意,如果您在中间件中设置内容,则仍需要了解此问题;永远不要在中间件类的__init__
中设置任何状态,因为它只在进程启动时执行一次。