gpt4 book ai didi

django DEBUG = False仍在 Debug模式下运行

转载 作者:行者123 更新时间:2023-12-04 22:03:41 25 4
gpt4 key购买 nike

我在部署的服务器(在heroku上)上设置DEBUG = False时遇到问题。
我不相信我以前见过这种情况,但是将debug设置为false并不能摆脱项目的 Debug模式。这意味着当有500个错误时,它将显示该错误,而404个错误将显示我的所有网址。
奇怪的是,当我登录服务器并运行以从django.conf import settings settings.DEBUG获取设置值时,它显示为False,这是我为生产服务器设置的值。 TEMPLATE_DEBUG也设置为False。
我不知道我在DEBUG = False所在的位置之前是否曾见过此消息,但它仍在 Debug模式下运行。有任何想法吗?
编辑:
我以为我也会写这个小纸条,因为在将debug切换为False时,人们经常会收到500或400个错误。我没有收到任何错误,我的项目的行为就像在 Debug模式下一样。

# settings/dev.py
from .base import *

DEBUG = True
TEMPLATE_DEBUG = DEBUG

if not DEBUG:
ALLOWED_HOSTS = ['localhost']

SECRET_KEY = 'localsecret1234123412341234'


# settings/prod.py
from .base import *

import dj_database_url, os

DEBUG = os.environ.get("DEBUG", False)
TEMPLATE_DEBUG = DEBUG

ALLOWED_HOSTS = ['mydomain.com']
SECRET_KEY = os.environ["DJANGO_SECRET_KEY"]

STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')

DATABASES = {}
DATABASES['default'] = dj_database_url.config()

最佳答案

我会将其作为对以后的人们的实际答案。

可能会发生三个主要方面,其中“此”基本上是:

I've changed something in my settings, but it doesn't seem to be reflected in the operation of my app!



更改代码后,尚未重置
  • 服务器。
  • 本地和开发设置未被覆盖/或以意外方式覆盖
  • 本地环境变量将覆盖对其进行硬编码的尝试

  • 在此示例中,在Heroku上,环境变量 are set this way.Linux enviroments is available here.中使用它们的更一般的指南

    使用问题中的示例,您可以看到在以下环境中使用的环境变量:
    SECRET_KEY = os.environ["DJANGO_SECRET_KEY"] 

    这使用os库进入系统,并检查名为 DJANGO_SECRET_KEY的环境变量。

    一个更好的例子是:
    DEBUG = os.environ.get("DEBUG", False)

    这很好,因为它尝试从环境中获取它,如果失败,则使用元组中的第二个值作为默认值:在这种情况下,为False。

    在调试过程中,您可以使用linux shell中的 printenv来查找设置,这将打印出所有可用的EnvVars。如果不存在,则可以将其设置为以下格式:
    export DJANGO_SETTINGS_MODULE=mysite.settings
    在这种情况下,最好取消设置环境变量,而不是类型转换 as per this related answer.

    关于django DEBUG = False仍在 Debug模式下运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38617046/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com