以编程方式修改Django设置

时间:2016-09-16 14:55:47

标签: python django

我有Django项目。我需要将应用程序添加到INSTALLED_APPS或使用其他python脚本更改模板配置。最好的方法是什么?

我有几个想法。

  • 从Python中打开settings.py作为文本文件并进行修改。似乎是车轮改造并打开包含许多错误的框(逃避等)。
  • 使用像ast这样的Python模块,但它的级别非常低,读取访问权限更多(我需要重新写入数据)。
  • 使用一些Django工具(我不确定这种工具是否存在)。

最好的方法是什么?

PS:Parse a .py file, read the AST, modify it, then write back the modified source code是相关的,但它不是特定于Django且非常古老。

1 个答案:

答案 0 :(得分:1)

更好(意味着更安全和干净)的方法是生成python模块,然后在settings.py中使用它。例如,让您的脚本创建包含以下内容的文件:

ADDITIONAL_APPS = [
    'foo',
    'bar',
]

将其另存为additional_settings.py并将其与settings.py放在同一目录中,然后在settings.py中添加行

from .additional_settings import ADDITIONAL_APPS

...

INSTALLED_APPS += ADDITIONAL_APPS

这样您根本不需要解析任何内容,也不会有破坏现有设置的风险。

让我知道它是否有效