【发布时间】:2015-04-15 14:18:10
【问题描述】:
我正在使用 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()。
如何在每次重新加载/更改页面时重置列表?
编辑:
好的,我试着更好地解释我的情况:
- 我有一个“javascript 存储库”类。它的作用是响应一串javascript函数。
Javascript 函数组织在独立模块(函数列表)中,因此我可以将所需的函数附加到我的页面。
不同的模块可以共享相同的功能。 - 在我看来,我指定了一个函数的url(它在同一个视图中)get_js_code,它的规则是返回javascript代码(带有:
return HttpResponse(code,content_type="application/x-javascript")) - get_js_code 启动“javascript 存储库类”,询问一个或多个模块(函数列表),我的类只返回一次函数,即使一个函数属于多个模块。
- 在我的模板中,我将 get_js_code url 指定为 javascript 资源,并从 Django 页面下载 javascript 代码
效果很好但是:
- 每个应用程序都需要一个模块,因此我在中间件中指定了一个 url,该 url 将引导到启动该类的另一个应用程序/函数,以便将公共 javascript 模块作为 javascript 资源附加。
问题出在这里:
- 我的“javascript 存储库类”有一个列表,其中包含返回的 javascript 函数列表,以便只返回一次函数。它运行良好,但只有一次:事实上,如果我重新加载页面,列表不会过期并且不会返回任何 javascript 函数。
很难解释,我希望现在清楚。
PS:我错了,我没有在中间件中启动类。
PPS:我知道将 javascript 代码放在 Python 代码中是不寻常的,但我正在测试这个解决方案。
【问题讨论】:
-
这个类在哪里实例化?
-
例如在 Middleware 和 View
标签: python django variables static