Python 将django设置中的变量设置为有条件的(如果已停靠)

Python 将django设置中的变量设置为有条件的(如果已停靠),python,django,docker,Python,Django,Docker,我正在构建一个Django站点,它可以部署在多个站点上,有些站点已停靠,有些站点未停靠 在Django settings.py文件中,有一个设置可能会根据主机(IP地址)变量而改变,尤其是在Docker容器中运行时 特别是,Docker使用它(host.Docker.internal)从Docker容器中引用主机localhost,其中仅在容器中使用localhost引用Docker实例localhost 例如,Django将使用以下情况连接到SQL实例。Django已停靠,数据库位于主机服务器

我正在构建一个Django站点,它可以部署在多个站点上,有些站点已停靠,有些站点未停靠

在Django settings.py文件中,有一个设置可能会根据主机(IP地址)变量而改变,尤其是在Docker容器中运行时

特别是,Docker使用它(host.Docker.internal)从Docker容器中引用主机localhost,其中仅在容器中使用localhost引用Docker实例localhost

例如,Django将使用以下情况连接到SQL实例。Django已停靠,数据库位于主机服务器上:

'HOST': 'host.docker.internal'
在另一种情况下,Django不是在docker容器中运行,而是在主机上运行,因此它可以直接在本地访问数据库:

'HOST': 'localhost'
问题:在需要这样的环境变量之前,是否有一种方法来进行条件语句,例如:

if in_docker:
    HOST = 'host.docker.internal'
else:
    HOST = 'localhost'

您可以为此使用环境变量:

import os
HOST = os.environ.get('HOST_URL', 'localhost')
并在
Dockerfile
中设置一个环境变量

ENV HOST_URL host.docker.internal
有关更多信息,请参阅