跳转到主要内容

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

项目描述

Code Coverage Build Status

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

概述

假设您有一个名为 myapp 的应用,其中包含一些默认设置,您希望在应用代码中不重复这些设置。 appconf 提供了一个简单的类来实现这些默认设置。只需在您的应用文件中添加类似以下代码即可

from appconf import AppConf

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

设置以设置所在的应用的命名空间首字母大写形式初始化。例如,如果您的包含 AppConf 类的 models.py 文件位于 myapp 包中,则设置的名称前缀将是 MYAPP

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

from appconf import AppConf

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

    class Meta:
        prefix = 'acme'

MyAppConf 类将自动检查Django的全局设置以确定是否已覆盖。例如,将以下内容添加到您的站点 settings.py 中将覆盖上述 MyAppConfSETTING_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.6.tar.gz (15.9 kB 查看哈希值)

上传时间 源代码

构建发行版

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

上传时间: Python 3

由以下提供支持

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