首页 文章

Django不承认DEBUG = False

提问于
浏览
-1

我正在尝试为我的Django项目开发404和500错误自定义模板 .

当我将DEBUG更改为False时,Django总是返回我:

您看到此错误,因为您的Django设置文件中有DEBUG = True . 将其更改为False,Django将显示标准的404页面 .

将ALLOWED_HOSTS更改为['.domain.com','www.domain.com']后,我获得:

无效的HTTP_HOST标头:'domain.com' . 您可能需要将u'domain.com'添加到ALLOWED_HOSTS .

我究竟做错了什么?为什么Django不识别变量?

2 回答

  • 1

    在项目中找到 DJANGO_SETTINGS_MODULE 环境变量 .

    它的值是 python 路径语法 . 使用它来找到设置文件,因为它是 django 使用的文件,并确保 DEBUG = False . 此外,您可以添加 print 语句,该语句提供有关服务器启动的一些可视反馈 .

    通过执行 python manage.py runserver 保存配置后重新启动开发服务器 .

  • 1

    值得一提的是,当我创建自定义404/500模板时,我发现更容易设置一个基于临时类的TemplateView,然后一旦我完成设计它们就会被移动到Django寻找它们的模板文件夹中 . 原因是,一旦你通过DEBUG问题,你的下一个障碍可能是提供你的静态文件;在典型的设置中,当DEBUG = False时,它们将不会在您的开发机器上提供(除非您已将其配置为这样做) . 这很重要,因为您创建的模板可能依赖于这些文件(css,js文件等) . 无论哪种方式:

    1)确保其读取完全如下:

    DEBUG = False
    

    2)确保它没有嵌套在if / else语句或类似的东西中 .

    3)在您的开发环境中,您可以保持ALLOWED_HOSTS = ['localhost']来禁止域警告 .

    4)如果所有其他方法都失败了,您可以在另一个目录中启动一个新项目,并将自动生成的settings.py文件与您拥有的文件进行比较 .

相关问题