Skip to main content

允许对 Django 进行更复杂和动态的设置

项目描述

django 增强设置

测试 编解码器 派皮 PyPI - Python 版本 PyPI - 轮子

允许对 Django 进行更复杂和动态的设置。

附加功能

cloud-secret-manager- 添加对 Google Cloud Secret Manager 的支持

例子

import os

from django_enhanced_settings import Settings


BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

settings = Settings(BASE_DIR)


def __dir__():
    return settings.dir(globals())


def __getattr__(name):
    return settings.getattr(name, globals())


_DEBUG = settings.boolean_value('DJANGO_DEBUG', False)
_ALLOWED_HOSTS = settings.list_value(
    'DJANGO_ALLOWED_HOSTS',
    ['localhost'] if _DEBUG.value else [],
    split_char=';'
)
_SECRET_KEY = settings.string_value('DJANGO_SECRET_KEY', required=True)
INSTALLED_APPS = [...]
from django.conf import setings

settings.DEBUG  # By default returns False

规则

  1. 您不能使用为实例 ( )ConfigValue设置的命名方案来命名非。例如,编写以下代码会在上面的示例中引发 a:Settingssuffix_underscoreValueError
_INSTALLED_APPS = [...]
  1. 如果不使用为实例 ( )ConfigValue设置的命名方案,则不允许命名 a 。例如,编写以下代码会在上面的示例中引发 a:Settingssuffix_underscoreValueError
SECRET_KEY = settings.string_value('DJANGO_SECRET_KEY', required=True)
  1. 不允许定义 2 个导致相同可访问名称的变量名称。例如,编写以下代码会ValueError在上面的示例中引发 a:
_SECRET_KEY = settings.string_value('DJANGO_SECRET_KEY', required=True)
SECRET_KEY = 'SECRET_KEY'

如果您想自定义这些规则,您可以编写自己的__dir____getattr__.

首次运行时缓存值

如果您想一次缓存所有静态值,可以附加Settings.cache_static_values(...)到设置文件的底部。对于上面的示例,这将获取DEBUG,ALLOWED_HOSTSSECRET_KEY

settings.cache_static_values()

如果您不使用Settings.dir(...)and Settings.getattr(...),您可能需要编写自己的函数而不是 using Settings.cache_static_values(...)

项目详情


下载文件

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

源分布

django-enhanced-settings-0.2.4.tar.gz (5.2 kB 查看哈希)

已上传 source

内置分布

django_enhanced_settings-0.2.4-py3-none-any.whl (6.5 kB 查看哈希

已上传 py3