我想在python中编写一个脚本来编辑我的django app settigs.py文件。除了将文件作为文本文件读取之外,还有其他方法可以编辑设置文件中的变量值并保存吗?
答案 0 :(得分:3)
除了将文件作为文本文件读取之外,还有其他方法可以编辑设置文件中的变量值并保存吗?
无需解析&像这样重写settings.py。只需添加如下语句:
import json
overrides = json.loads(open('settings.json').read())
globals().update(overrides)
settings.json
然后包含您的设置:
{
"MY_SETTING" : "FOO"
}
我在这里使用.json文件作为示例。只要overrides
是一个字典,您就可以使用任何返回字典的源(例如yml,您自己的格式,甚至是python的类__dict__
)。
因此,从settings
导入的django.conf
将包含新设置,就好像它是直接在settings.py
中指定的那样:
$ python manage.py shell
In [1]: print settings.MY_SETTING
FOO
答案 1 :(得分:1)
在您的主要settings.py中,您可以执行以下操作:
from portal.base.settings import add_portal_settings
globals().update(add_portal_settings(locals()))
portal.base.settings的内容类似于:
def add_portal_settings(settings):
settings['PORTAL_URL'] = "portal_account_login"
return settings
这将起作用:
from django.conf import settings
print(settings.PORTAL_URL)
答案 2 :(得分:0)
你想要像django-appconf这样的东西。