首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django:如何在运行服务器之前将参数传递给settings.py以设置变量

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

Stack Overflow用户
提问于 2015-04-28 07:17:23
回答 1查看 1.7K关注 0票数 1

我几乎没有什么服务,比如redis服务器,centifuge服务器与Django一起运行。我想使用一个命令启动服务和服务器。

类似于:

代码语言:javascript
复制
python setup.py run

默认情况下,这将运行来自settings.py的127.0.0.1及以下变量上的所有服务。

代码语言:javascript
复制
#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'

我想跑

代码语言:javascript
复制
python setup.py run 172.19.78.179

在这里,服务将运行在172.19.78.179上,我将把设置更改为这个ip。

代码语言:javascript
复制
# centrifuge configuration
CENTRIFUGE_WEBSOCKET = 'ws://172.19.78.179:8080/connection/websocket' 
CENTRIFUGE_ADDRESS = 'http://172.19.78.179:8080'

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-28 08:25:50

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

代码语言:javascript
复制
import os

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

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

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

代码语言:javascript
复制
django-admin runserver --settings=mysite.settings

您可以阅读更多关于django环境设置这里的信息。

希望这能有所帮助。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29912748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档