跳转到主要内容

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 (4.5 kB 查看哈希值)

上传时间

支持者:

AWSAWS云计算和安全赞助商 DatadogDatadog监控 FastlyFastlyCDN GoogleGoogle下载分析 MicrosoftMicrosoftPSF赞助商 PingdomPingdom监控 SentrySentry错误日志 StatusPageStatusPage状态页面