Django应用的简单应用特定设置
项目描述
django-easysettings
Django应用的简单应用特定设置。
提供了一种使用声明性类来为应用设置默认值的方法。可以使用此类实例来访问所有项目设置,而不使用 django.conf.settings。
安装
要安装,请运行: pip install django-easysettings
使用方法
在您的应用目录内创建一个 conf.py 文件,添加应用特定设置的默认值属性。它们将被提供的任何项目设置覆盖。
例如
from easysettings.app import AppSettings
class Settings(AppSettings):
MYAPP_FRUIT = 'Apple'
settings = Settings()
然后在您的应用中,而不是 from django.conf import settings,请使用 from myapp.conf import settings。例如
from myapp.conf import settings
def dashboard(request):
context = {}
context['fruit'] = settings.MYAPP_FRUIT
if settings.DEBUG:
context['debug_mode'] = True
# ...
字典
一个常见的模式是将字典用作所有应用设置的命名空间,例如 settings.MYAPP['settings']。
Easy-settings可以很好地处理这种情况,覆盖了项目提供的任何键,同时仍然可以访问默认应用设置键。
您还可以使用 AppSettings 类的子类来设置字典。
from easysettings.apps import AppSettings
class MyAppSettings(AppSettings):
"""
MyApp settings
"""
#: Preferred fruit
FRUIT = 'Apple'
#: Preferred drink
DRINK = 'Water'
class Settings(AppSettings):
MYAPP = MyAppSettings
settings = Settings()
旧版用法
如果您之前的应用程序使用了一个公共前缀(例如 MYAPP_),您仍然可以在迁移到 MYAPP 字典设置的同时支持使用这些独立旧设置的旧项目。
from easysettings.legacy import LegacyAppSettings
class Settings(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日)
首次发布。
项目详细信息
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。