为什么我没有Django-wsgi当前脚本的结果?

时间:2013-06-09 16:58:52

标签: python apache wsgi

我在教程的帮助下使用Django迈出了第一步,但我不理解我的行动结果。

当我修改我的python脚本并刷新我的页面时,就像有一个缓存存储旧版本的脚本。

实施例 我有这个错误:

global name 'Poll' is not defined
Exception Location: /var/www/pythonRoot/scrapfull/polls/views.py in index, line 5

Traceback:
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response 111.  response = callback(request, *callback_args, **callback_kwargs)
File "/var/www/pythonRoot/scrapfull/polls/views.py" in index 5. return HttpResponse("Hello, world. Vous etes a l'index des sondages.")

所以,我看到关于我的民意调查模型的错误第5行,但在此测试脚本中没有调用任何民意调查行动。 但确实以前,第5行是     latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5]'

为什么当我刷新时,我没有对当前保存的脚本的解释? 而且,当我频繁地点击“刷新”时,我可以看到一些随机的结果。为什么呢?

我的说法: Apache + mod_wsgi

1 个答案:

答案 0 :(得分:1)

当然,出于性能原因, 是一个缓存。 mod_wsgi将您的脚本保存在内存中,而不是在每次有人访问您的应用程序时重新读取它们。

如果您在守护进程模式下运行mod_wsgi,告诉mod_wsgi重新加载源的最简单方法是touch .wsgi个文件:

$ touch path/to/your/app.wsgi

否则你将不得不重启Apache。

(另见this page


我建议使用Django的buit-in webserver进行开发,因为它会自动重新加载你的脚本。