【问题标题】:App level settings in DjangoDjango 中的应用程序级别设置
【发布时间】:2015-05-31 00:43:54
【问题描述】:

在 Django 中包含应用程序级设置的约定是什么?例如我正在编写一个 Django 应用程序,该应用程序具有一个视图,该视图可以对另一个 Web 服务进行 API 调用,获取其响应,对其进行修改并将其返回。现在,我想要一个设置变量来保存这个 API URL 的值(并且取决于 Django Web 服务器是否在 stage/dev/prod 中运行,API URL 会有所不同)。我应该在 app 目录中创建一个settings.py 吗?或者修改项目的settings.py?如果我稍后再做,那么应用程序将不再保持可插拔/便携。可以吗?

请提供您回复的理由(即请解释为什么将设置包含在全局 settings.py 中可能是个好主意,即使它会降低应用程序的可移植性)。

谢谢。

【问题讨论】:

    标签: python django django-settings django-apps


    【解决方案1】:

    创建一个全局settings.py,并在应用文档中指定需要哪些设置。你不应该制作特定于应用程序的settings.py 文件,除非它们有一些不相关的内部使用。您可能想使用 getattr(settings, 'SOME_SETTING_NAME', 'default value') 之类的东西来获取具有默认值的选项。

    如果您想对 prod/staging/dev 进行单独设置,那么您需要创建一个 settings/ 文件夹,其中包含一个基于 ENV 变量导入的 __init__.py 文件。

    【讨论】:

      猜你喜欢
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 2018-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-08
      • 2013-01-30
      相关资源
      最近更新 更多