gpt4 book ai didi

python - Django:如何在运行服务器之前将参数传递给settings.py以设置变量

转载 作者:行者123 更新时间:2023-12-01 04:43:56 29 4
gpt4 key购买 nike

我有一些服务,例如与 Django 一起运行的 redis 服务器、centifuge 服务器。我想使用单个命令启动服务和服务器。

类似于:

python setup.py run

默认情况下,这将在 127.0.0.1 上运行所有服务,并且 settings.py 中的以下变量有意义。

#Sample settings.py 
#Django rq configs
RQ_SHOW_ADMIN_LINK = True
RQ_QUEUES = {
'default': {
'HOST': 'localhost',
'PORT': 6379,
'DB': 0,
'DEFAULT_TIMEOUT': 360,
},
}

# centrifuge configuration
CENTRIFUGE_WEBSOCKET = 'ws://127.0.0.1:8080/connection/websocket'
CENTRIFUGE_ADDRESS = 'http://127.0.0.1:8080'

我想运行

python setup.py run 172.19.78.179

这里,服务将在172.19.78.179上运行,我想将设置更改为该IP。

# centrifuge configuration
CENTRIFUGE_WEBSOCKET = 'ws://172.19.78.179:8080/connection/websocket'
CENTRIFUGE_ADDRESS = 'http://172.19.78.179:8080'

我不想在实时设置或通过管理界面进行设置。我该如何解决这个问题

最佳答案

如果IP是动态的,您可以尝试使用os.environ,如下所示:

import os

IP = os.environ['IP']
...

所以你可以像这样运行:IP=172.19.78.179 python setup.py run

或者,如果您愿意,可以使用单独的 settings 文件并使用 --settings 标志调用它:

django-admin runserver --settings=mysite.settings

您可以阅读有关 django 环境设置的更多信息 here .

希望这有帮助。

关于python - Django:如何在运行服务器之前将参数传递给settings.py以设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29912748/

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