Django 使用 TOML 配置文件的设置。
项目描述
此项目用于使用 Django 项目使用 Toml 配置文件进行配置。此项目选择 Toml 而不是其他配置语言,因为它简单且规范小。它更容易理解,看起来非常像 INI 风格的配置。我们无法使用 INI 风格,因为它难以表示如字典和列表这样的数据结构,并且没有嵌套支持。
变更日志
0.0.4
支持在映射和列表中添加替换功能。
修复了加载设置时值非字符串导致的 v0.0.3 中的 TypeError。
0.0.3
修复了新版本的分包问题。
0.0.2
支持使用 ${VAR} 语法在值中替换变量。
用法
要在您的 Django 项目中使用此功能,请将以下内容添加到您的 settings.py 文件中
# settings.py from django_settings_toml import load_settings load_settings(__name__, ['/etc/project.toml', '~/.project.toml'])
然后,您可以像这样运行您的 django 项目
$ DJANGO_SETTINGS_MODULE=project.settings django-admin runserver
变量替换
值可以使用 ${VAR} 语法引用同一文件中定义的其他键。例如
# /etc/project.toml HOSTNAME = 'domain.local' EMAIL1 = 'aperson@${HOSTNAME}' EMAIL2 = 'bperson@${HOSTNAME}'
在上面的例子中,EMAIL1 的值为 'aperson@domain.local',对于 EMAIL2 也是类似的。
如果引用的变量未定义,模板将保持原样,不会引发任何错误。例如,在上面的例子中,如果 HOSTNAME 未定义,则值将是 EMAIL1 = 'aperson@${HOSTNAME}'。
示例设置
# /etc/project.toml # SECURITY WARNING: keep the secret key used in production secret! SECRET_KEY = 'change-this-on-your-production-server' # SECURITY WARNING: don't run with debug turned on in production! DEBUG = false ADMINS = [ ['Mailman Suite Admin', 'root@localhost'], ] # Application definition INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'django_q', 'allauth', ] MIDDLEWARE = [ 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.middleware.locale.LocaleMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.security.SecurityMiddleware', ] ROOT_URLCONF = 'project.urls' WSGI_APPLICATION = 'project.wsgi.application' HOSTNAME = 'project.local' EMAIL_NAME = 'project1@${HOSTNAME}' [DATABASES.default] ENGINE = 'django.db.backends.sqlite3' NAME = 'mailmansuite.db' [LOGGING] version = 1 disable_existing_loggers = false [LOGGING.filters.require_debug_false] '()' = 'django.utils.log.RequireDebugFalse' [LOGGING.handlers.mail_admins] level = 'ERROR' filters = ['require_debug_false'] class = 'django.utils.log.AdminEmailHandler' [LOGGING.handlers.file] level = 'INFO' class = 'logging.handlers.WatchedFileHandler' filename = 'logs/mailmansuite.log' formatter = 'verbose' [LOGGING.loggers."django.request"] handlers = ['mail_admins', 'file'] level = 'ERROR' propagate = true [LOGGING.formatters.verbose] format = '%(levelname)s %(asctime)s %(process)d %(name)s %(message)s'
注意事项
许可证
本项目的所有内容均受Apache License 2.0许可。请参阅LICENSE文件以获取许可证文本的完整副本。
项目详情
关闭
django-settings-toml-0.0.4.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8ef1bda50e9c2733560b4a87d4a35e1f1aea8d42bef328ba9988b64da2749cf7 |
|
MD5 | fe6b3010b12f5b764b6ec47fcc928adc |
|
BLAKE2b-256 | 2b43d7f3e1995e467f68560a86a059345f2d2a84bfc2358e5056c4c27f11ced4 |