python - 以编程方式修改 Django 设置

标签 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 特有的并且相当古老。

最佳答案

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

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

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

from .additional_settings import ADDITIONAL_APPS

...

INSTALLED_APPS += ADDITIONAL_APPS

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

让我知道它是否有效

关于python - 以编程方式修改 Django 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39534505/

相关文章:

python - 使用 XMLRPC 将文件从客户端发送到服务器?

python - 寻找 wikidump python lib 的示例或文档

python - 图像在 Django 模板中旋转

Django 管理仪表板,有没有办法小写模型名称?

python - Django:用于 prefetch_lated 的数据库与父查询不同

python - django.db.utils.ProgrammingError : cannot cast type text[] to jsonb

python - 如何执行函数列表并将数据传递给使用 asyncio 调用的适当函数

python - Python 中的 Hough 变换 - 结果偏移不正确 - 索引错误?

Django 模型表单集显示数据库数据而不是空表单集

python - 如何提供正确的请求正文来序列化 Django 通用外键?