django的简单应用程序特定设置
django-easysettings的Python项目详细描述
django easysettings
django应用程序的简单应用程序特定设置。
为应用程序的默认设置提供使用声明性类的方法。 此类的实例可用于访问所有项目设置 共django.conf.settings。
安装
要安装,请运行:pip install django-easysettings
使用量
在应用程序的目录中创建一个conf.py文件,添加 应用程序特定设置的默认值。他们将被 提供的任何项目设置。
例如:
fromeasysettings.appimportAppSettingsclassSettings(AppSettings):MYAPP_FRUIT='Apple'settings=Settings()
然后在您的应用程序中,使用 来自myapp.conf导入设置。例如:
frommyapp.confimportsettingsdefdashboard(request):context={}context['fruit']=settings.MYAPP_FRUITifsettings.DEBUG:context['debug_mode']=True# ...
词典
一个常见的模式是使用字典作为所有应用程序的命名空间 设置,例如settings.MYAPP['settings']。
简单设置处理此精细设置,覆盖项目中提供的任何键 同时仍然可以访问默认的应用程序设置键。
还可以使用AppSettings类的子类来设置字典。
fromeasysettings.appsimportAppSettingsclassMyAppSettings(AppSettings):""" MyApp settings """#: Preferred fruitFRUIT='Apple'#: Preferred drinkDRINK='Water'classSettings(AppSettings):MYAPP=MyAppSettingssettings=Settings()
传统用法
如果以前你的应用程序使用了一个公共前缀(如myapp 仍然可以支持仍使用这些独立的传统设置的项目 为您的设置移动到MYAPP字典时。
fromeasysettings.legacyimportLegacyAppSettingsclassSettings(LegacyAppSettings):MYAPP={'FRUIT':'Apple'}settings=Settings()
如果项目使用像MYAPP_FRUIT = 'Banana'这样的设置,它们将继续 去工作。一旦项目切换到MYAPP,任何MYAPP_*设置 将被忽略。
使用旧版应用程序设置类时,字典设置仍然可以 通过前缀设置(例如,settings.MYAPP_FRUIT)访问。
更改日志
2.0.1(2019年8月10日)
- 将python 3.7和django 2.2添加到测试矩阵中。
2.0(2018年4月24日)
- 项目全部返工!现在导入 from easysettings.app import AppSettings(但可从中导入 easysettings以获得更好的向后兼容性)。
- 删除了独立设置功能,不需要单独设置 用于测试和/或使用TestCase.settings()上下文管理器的模块。
- 添加了easysettings.legacy.LegacyAppSettings用于向后提供 将设置移动到时前缀项目设置的兼容性 字典而不是具有相同前缀的单个设置。
1.1(2017年4月4日)
- django 1.11兼容性。
1.0.1(2012年5月24日)
- 包括额外的源文件。
1.0(2012年4月16日)
- 初次发布。