【问题标题】:Why I dont have the result of my current script with Django-wsgi?为什么我没有当前脚本与 Django-wsgi 的结果?
【发布时间】:2013-06-09 16:58:52
【问题描述】:

在教程的帮助下,我迈出了使用 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.")

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

为什么我刷新时没有当前保存脚本的解释? 此外,当我疯狂地点击“刷新”时,我可以看到一些随机结果。为什么?

我的配置: Apache + mod_wsgi

【问题讨论】:

    标签: python apache wsgi


    【解决方案1】:

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

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

    $ touch path/to/your/app.wsgi
    

    否则你将不得不重新启动 Apache。

    (另见this page


    我建议使用 Django 的内置网络服务器进行开发,因为它会自动重新加载您的脚本。

    【讨论】:

    • 我使用了 Django 的内置网络服务器并且遇到了同样的问题。每次修改脚本时,我都必须终止并重新启动网络服务器。处理我的脚本的最佳方式是什么?
    • @Makash 不,这不可能。由./manage.py runserver 启动的服务器正在监视您的所有文件,当您修改它们时,它会重新加载它们(它甚至会在控制台上打印它重新加载它们)。再试一次。
    • 好的。感谢您的建议。我会这样尝试
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 2020-01-03
    • 2019-05-17
    • 2021-05-25
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多