【问题标题】:Django 1.5 url deprecation warning causes 500 error in Webfaction Apache wsgiDjango 1.5 url deprecation 警告在 Webfaction Apache wsgi 中导致 500 错误
【发布时间】:2013-03-14 08:47:31
【问题描述】:

我已经将这个特定的应用程序从 Django 1.4 更新到 Django 1.5,并且在本地一切正常 - 我必须修复一些 url 调用,但这很好。现在在部署到 Webfaction 并通过 Apache + mod_wsgi 运行站点时我在尝试加载的每个页面上都收到错误 500。

所有配置文件都保持不变,只有 Django 库发生了变化。我已经 pip 安装了所有要求并且它们加载正常。

如果我在本地设置中使用DEBUG = True 将站点调低到调试模式,那么一切正常。在调试模式下的错误日志中,我得到以下信息:

[Sun Mar 24 22:47:17 2013] [error] /home/user/webapps/app/htdocs/env/lib/python2.7/site-packages/django/conf/urls/defaults.py:3: DeprecationWarning: django.conf.urls.defaults is deprecated; use django.conf.urls instead
[Sun Mar 24 22:47:17 2013] [error]   DeprecationWarning)

我的问题是 - 为什么这是一个错误? [error]?不应该是[info] 级别吗?当我将应用程序退出调试模式时,这可能是导致 500 错误的原因吗?

如何使用 Django 1.5 让网站再次活跃起来?有没有办法关闭这些警告?

我确实查看了 Django 源代码 https://github.com/django/django/commit/0d49fdb573d44794cc78c6af4761cc79c5330315 中的这个提交,看看我是否可以关闭我应用程序的 local_settings 文件中的日志记录,但没有运气。

这是我的httpd.conf 文件:

ServerRoot "/home/user/webapps/app/apache2"

LoadModule dir_module        modules/mod_dir.so
LoadModule env_module        modules/mod_env.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module       modules/mod_mime.so
LoadModule rewrite_module    modules/mod_rewrite.so
LoadModule setenvif_module   modules/mod_setenvif.so
LoadModule wsgi_module       modules/mod_wsgi.so

LogFormat "%{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog /home/user/logs/user/access_app.log combined
ErrorLog /home/user/logs/user/error_app.log
LogLevel info
KeepAlive Off
Listen 27114
MaxSpareThreads 3
MinSpareThreads 1
ServerLimit 1
SetEnvIf X-Forwarded-SSL on HTTPS=1
ThreadsPerChild 5
WSGIDaemonProcess app processes=2 threads=12 python-path=/home/user/lib/python2.7:/home/user/webapps/app/htdocs:/home/user/webapps/app/htdocs/env/lib/python2.7/site-packages
WSGIProcessGroup app
WSGIRestrictEmbedded On
WSGILazyInitialization On
WSGIScriptAlias / /home/user/webapps/app/htdocs/ag/wsgi.py

这是我的wsgi.py

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ag.settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

【问题讨论】:

    标签: django mod-wsgi django-1.5


    【解决方案1】:

    我找到了解决方案 - [error] 消息是一个红鲱鱼。

    在 Django 1.5 中,当 DEBUG = False 在设置中时,ALLOWED_HOSTS 在设置文件中是必需的https://docs.djangoproject.com/en/1.5/releases/1.5/#allowed-hosts-required-in-production

    否则网站会引发 500 个错误 - 这就是我得到的。

    添加ALLOWED_HOSTS,一切又恢复正常。 RTFM 的简单案例。

    【讨论】:

    • 如果这是您问题的正确答案,请将其标记为已接受的答案;)
    • 感谢@HuckleberryFinn - 我没有想到这一点。它说我可以在 6 小时内接受我自己的答案。
    • 问题仍然存在,为什么我们会在最新的 django(当前为 1.5)中收到弃用警告?这是 django 方面的错误/滑动更新吗?
    • @shailenTJ 最新的 Django 是 1.5.2 对吗?自从我发布这个问题后,我就没有使用过 Django。
    • 没错!我正在使用 Django 1.5.2 并收到此警告。在日志中看到警告并不好 :(
    猜你喜欢
    • 2013-02-23
    • 2013-04-14
    • 2012-11-25
    • 2023-03-11
    • 2016-12-18
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 1970-01-01
    相关资源
    最近更新 更多