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 |