跳转到主要内容

Django应用的简单应用特定设置

项目描述

django-easysettings

Build status Coverage status

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日)

  • 首次发布。

项目详细信息


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源分发

django-easysettings-2.0.1.tar.gz (6.3 kB 查看哈希)

上传时间

构建分发

django_easysettings-2.0.1-py2.py3-none-any.whl (6.8 kB 查看哈希)

上传时间 Python 2 Python 3

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面