Django的每个应用的默认设置
项目描述
DjAppSettings:Django的每个应用的设置
每次启用应用时,我都不喜欢将块粘贴到settings.py中。
这是一个Python模块,它为可重用的Django应用提供了一种合理的配置方式。
它是django.conf.settings类的替换品。您可以通过单个settings对象获取您项目的所有、应用和全局默认设置。
它不会修改您项目的设置模块,现有的Django应用可以自由忽略它。如果这个模块不可用,您的应用甚至可以回退到常规方法。
应用设置防止覆盖内置设置。它们只能添加设置。
项目设置(在DJANGO_SETTINGS_MODULE中)覆盖应用设置。
使用每个应用的名称前缀是个好主意,但不是强制性的。
但是,但是
我知道Jared Forsyth的django-appsettings,我认为它很可爱,但却是错误的。Django后台中不应该可编辑项目设置。
我也知道这个功能在Django trac上多次被拒绝。但是每次添加应用程序时,将大量垃圾粘贴到我的settings.py文件中真是一件痛苦的事情。
检查设置(通过settings.hasattr),然后回退到硬编码的默认值是一个糟糕的解决方案,因为你的默认值被重复并埋藏了。它们应该容易被发现。
用法
你通常会这样做
from django.conf import settings getattr(settings, "MY_SETTING", "DEFAULT")
在你的应用中创建一个settings.py文件,包含
MY_SETTING = "DEFAULT"
然后这样做
from djappsettings import settings settings.MY_SETTING
如果你想在支持此模块的地方使用它,但如果不支持则回退到常规方法,只需try它即可
try: from djappsettings import settings except: from django.conf import settings settings.MY_SETTING
安装
通过Pip
$ pip install djappsettings
通过GitHub
$ git clone git://github.com/adammck/djappsettings.git $ python djangoappsettings/setup.py install
测试
安装tox并运行测试
$ git clone git://github.com/adammck/djappsettings.git $ pip install tox $ cd djappsettings $ tox
有虫子吗?
这是为RapidSMS项目挠痒痒而创建的。我希望它对你有所帮助。使用它时请自担风险。(但请使用它,因为它好得多。)
欢迎提交补丁和拉取请求。请在GitHub上报告错误。
许可证
djappsettings是免费软件,可在BSD许可证下使用。
项目详情
关闭
djappsettings-0.4.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 97b7823962d35d2b6a977c3312ecd34eb53be426d3a71216140f9ca634450f53 |
|
MD5 | ea0b92437f9353616fbb679ebfcb6727 |
|
BLAKE2b-256 | 325800793cca5e960fbb8903fdbba796451aad3412cfdcac880bcf0226bf9b60 |