Skip to main content

一个帮助类,用于优雅地处理打包应用程序的配置默认值。

项目描述

代码覆盖率 构建状态

一个帮助类,用于优雅地处理打包的 Django 应用程序的配置默认值。

概述

假设您有一个名为myapp的应用程序,其中包含一些默认值,您希望在应用程序的代码中引用这些默认值,而不是一直重复自己。 appconf提供了一个简单的类来实现这些默认值。只需在您的应用程序文件中的某处添加类似以下代码的内容:

from appconf import AppConf

class MyAppConf(AppConf):
    SETTING_1 = "one"
    SETTING_2 = (
        "two",
    )

使用设置所在位置的大写应用程序标签初始化设置。例如,如果您的带有AppConf类的models.py位于myapp包中,则设置的前缀将为MYAPP。

您可以通过指定内部Meta类的前缀属性来覆盖默认前缀:

from appconf import AppConf

class AcmeAppConf(AppConf):
    SETTING_1 = "one"
    SETTING_2 = (
        "two",
    )

    class Meta:
        prefix = 'acme'

MyAppConf类将自动查看Django 的全局设置以确定您是否已覆盖它。例如,将此添加到您网站的 settings.py将覆盖上述MyAppConf的SETTING_1:

ACME_SETTING_1 = "uno"

由于 django-appconf 使用其默认值(如上面的“one”)完成 Django 的全局设置,标准的python manage.py diffsettings将自动显示这些默认值。

如果您想使用不同的设置对象而不是默认 的 'django.conf.settings',请将内部 Meta类的holder属性设置为虚线导入路径:

from appconf import AppConf

class MyAppConf(AppConf):
    SETTING_1 = "one"
    SETTING_2 = (
        "two",
    )

    class Meta:
        prefix = 'acme'
        holder = 'acme.conf.settings'

如果您将AppConf类与可重用的 Django 应用程序一起提供,建议将其放在应用程序包的conf.py文件中,并将django.conf.settings也导入其中:

from django.conf import settings
from appconf import AppConf

class MyAppConf(AppConf):
    SETTING_1 = "one"
    SETTING_2 = (
        "two",
    )

在您应用程序的其他文件中,如果您从该模块导入 Django 的设置对象,您可以轻松确保正确加载设置,例如在您的应用程序的views.py中:

from django.http import HttpResponse
from myapp.conf import settings

def index(request):
    text = 'Setting 1 is: %s' % settings.MYAPP_SETTING_1
    return HttpResponse(text)

下载文件

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

源分布

django-appconf-1.0.5.tar.gz (15.9 kB 查看哈希)

已上传 source

内置分布

django_appconf-1.0.5-py3-none-any.whl (6.4 kB 查看哈希)

已上传 py3