Linux django同一服务器上的第二个项目:设置文件逻辑计算不正确?

Linux django同一服务器上的第二个项目:设置文件逻辑计算不正确?,linux,django,Linux,Django,我有一个运行两个django项目的服务器,我在服务器上创建了一个环境变量,在运行设置中的一些逻辑之前,我会检查它是否存在,然后选择调试是打开还是关闭。。。这在我的第一个项目中非常有效,但我只是在第二个项目中实现了它,还有一些问题 if 'PRODUCTION_SERVER' in os.environ: REAL = True else: REAL = False if REAL: DEBUG = False ALLOWED_HOSTS = ['mydomain

我有一个运行两个django项目的服务器,我在服务器上创建了一个环境变量,在运行设置中的一些逻辑之前,我会检查它是否存在,然后选择调试是打开还是关闭。。。这在我的第一个项目中非常有效,但我只是在第二个项目中实现了它,还有一些问题

if 'PRODUCTION_SERVER' in os.environ:
    REAL = True
else:
    REAL = False

if REAL:
    DEBUG = False
    ALLOWED_HOSTS = ['mydomain.com',]
else:
    # SECURITY WARNING: don't run with debug turned on in production!
    TEMPLATE_DEBUG = True
    DEBUG = True
    ALLOWED_HOSTS = []
  • REAL变量的设置值为
    False
    ,我已经检查过它是否在我的服务器环境中,包括ssh shell和django shell。为什么会这样
  • 编辑,我在/etc/bash.bashrc中导出了变量

    export PRODUCTION=True
    

    当我查看printenv时,我看到它在那里…

    将两个变量都设置为
    PRODUCTION
    PRODUCTION\u SERVER
    。另外,如果我可以添加,不要默认为debug=True,因为测试、开发、登台等需要不同的设置。您可以在settings文件夹中有一个base.py,并在各自的dev.py/prod.py中以debug=True/false继承该文件

    将这两个变量设置为
    PRODUCTION
    PRODUCTION\u SERVER
    。另外,如果我可以添加,不要默认为debug=True,因为测试、开发、登台等需要不同的设置。您可以在settings文件夹中使用base.py,并在各自的dev.py/prod.py中以debug=True/false继承该文件。我一直无法找到我的问题所在,我最终意识到我对不同的服务器有不同的BASE_DIR设置,因此我基于此编写了一个if语句来区分这两者

    我一直无法找出我的问题是什么,我最终意识到我对不同的服务器有不同的BASE_DIR设置,因此我基于此编写了一个if语句来区分这两种设置

    此项目是否位于虚拟环境中?如何设置变量?项目是在virtualenv中…变量是通过系统上的某个文件导出的,我会尝试找到它并将其添加到帖子中,当我这样做时…@Sayse,添加到postSetting中。bashrc是一种奇怪的方式,意味着只有用户从bash运行的东西才能看到该变量。Django是否看到这一点取决于您如何运行项目。如果您使用主管来运行您的项目,它将不起作用。您可以使用
    $cat/proc/$pid/environ
    查看正在运行的进程的环境,以检查发生了什么。我没有使用supervisor。奇怪的是,我的另一个项目看到了它,它在同一个用户下运行……不管是哪种情况,正确的方法是什么?我做这个解决方案是有必要的…这个项目是在虚拟环境中吗?如何设置变量?项目是在virtualenv中…变量是通过系统上的某个文件导出的,我会尝试找到它并将其添加到帖子中,当我这样做时…@Sayse,添加到postSetting中。bashrc是一种奇怪的方式,意味着只有用户从bash运行的东西才能看到该变量。Django是否看到这一点取决于您如何运行项目。如果您使用主管来运行您的项目,它将不起作用。您可以使用
    $cat/proc/$pid/environ
    查看正在运行的进程的环境,以检查发生了什么。我没有使用supervisor。奇怪的是,我的另一个项目看到了它,它在同一个用户下运行……不管是哪种情况,正确的方法是什么?我做这个解决方案是出于必要…这是我在这个网站上输入的错误。这不是这里的问题,在虚拟环境中这样做的方法是将变量放在激活后的文件中,这是我在这个网站上键入的错误。这不是这里的问题,在虚拟环境中这样做的方法是将变量放在激活后的文件中