Django的另一个应用设置

django-yaa-settings的Python项目详细描述


另一个应用程序设置-管理可重复使用的应用程序的设置

https://travis-ci.org/radiac/django-yaa-settings.svg?branch=masterhttps://coveralls.io/repos/github/radiac/django-yaa-settings/badge.svg?branch=master

功能

  • 易于安装和使用
  • 使用前提供默认值并验证用户设置
  • 在测试中使用django的设置覆盖

版本1.0.0;支持Python2.7和3.4以上版本的Django1.8、1.11和2.0。

安装

从PIP安装:

pip install django-yaa-settings

用法

在应用程序中,创建本地app_settings.py

from yaa_settings import AppSettings

class MySettings(AppSettings):
    prefix = 'MYAPP'

    # Can be overridden in Django settings as MYAPP_ATTRIBUTE
    ATTRIBUTE = 'a static value defined at class creation'

    @property
    def PROPERTY(self):
        """
        Return a value calculated whenever it is accessed

        Can be overridden in Django settings as MYAPP_PROPERTY
        """
        return 'a value calculated when accessed'

    def CALLABLE(self, value):
        """
        Always called, passed the MYAPP_CALLABLE value from Django settings
        (or passed None if that is not defined)
        """
        if value is None:
            raise ValueError('MYAPP_CALLABLE must be configured')
        return value
  • 导入并子类AppSettings
  • 每个文件只定义一个AppSettings子类
  • 如果要在中为设置提供前缀,请设置prefix属性 Django的设置。
  • 设置应为大写,以便与主django设置保持一致。

现在您可以直接在类上访问应用程序的设置,而无需 前缀:

from . import app_settings

def some_method(request):
    if app_settings.ATTRIBUTE == 1:
        return app_settings.PROPERTY
    return app_settings.CALLABLE

您可以使用 前缀:

MYAPP_ATTRIBUTE = 'value available as app_settings.ATTRIBUTE'
MYAPP_PROPERTY = 'value available as app_settings.PROPERTY'
MYAPP_CALLABLE = 'value passed to MySettings.CALLABLE'

为什么?

使用prefix命名设置

根据应用程序的名称将设置命名为 避免与其他应用程序冲突。通过使用prefix属性,您可以 在应用程序中省略前缀,使代码更整洁。

前缀是可选的,如果需要,可以手动命名设置的命名空间 希望在整个项目中使用相同的完整设置。

保留测试支持时的命名空间设置

使用prefix可以模拟一些 项目:

from django.conf import settings
SETTING = getattr(settings, 'MYAPP_SETTINGS', 'default')

但与简单的模式不同,yaa设置仍然适用于标准设置 测试重写-请参阅 Django documentation 更多细节。

使用属性创建动态默认值

您的AppSettings子类上的属性将在每次您 访问它,除非在django的设置中重写它。这样你就可以 在运行时生成动态默认值。

使用方法验证或标准化设置

每次访问AppSettings子类时,都将调用该子类上的方法 它,并将传递您在django的设置中定义的值。这个 允许您验证设置,或处理它们以备使用。

更改日志

  • 1.0.02018-06-24:稳定发布
  • 0.1.02018-06-24:初次发布

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java GridBagLayout不填充区域   java Memozied Fibonacci未运行与常规Fibonacci解决方案   Java Web启动未启动问题   Java中异常和if-then的区别   java从命令提示符运行批处理文件获取错误   socket在Java中验证SSL证书的公共名称   如何在JAVA中检查字符串数组中的相等字   用java语言将音频文件转换成文本文件的语音识别   java为什么foo(1,2,3)没有传递给varargs方法foo(对象…)作为整数[]   java通过蓝牙将奇怪的数据从Arduino传输到Android   java ContainerRequestFilter获取空entitystream   java如何从安卓 studio中删除不兼容类型错误   基本Java错误   在Spring引导中使用REST API时发生java错误   javascript通过从SQL查询派生的URL打开页面