此django应用程序允许您将某些设置导出到模板。
django-settings-export的Python项目详细描述
通常需要对django项目进行一些设置 可从模板中访问。这个应用程序提供了一个简单的机制 因为你这么做。
原则:
- 显式优于隐式:仅显式列出 设置键将导出到模板。
- 错误不应以静默方式传递:访问未定义的 或模板中未报告的设置键导致异常。
在Python2.7+、Django1.5+上测试。
安装
$ pip install django-settings-export
将'django_settings_export.settings_export'添加到 模板上下文处理器列表在settings.py:
django 1.8及更新版本:
TEMPLATES=[{# …'OPTIONS':{'context_processors':[# …'django_settings_export.settings_export',],},},]
django大于1.8:
TEMPLATE_CONTEXT_PROCESSORS=[# [...]'django_settings_export.settings_export',]
用法
应该从模板访问的所有设置都需要 在settings.SETTINGS_EXPORT:
中显式列出# settings.pyDEBUG=TrueGA_ID='UA-00000-0'SETTINGS_EXPORT=['DEBUG','GA_ID',]
现在可以从模板中访问导出的设置 通过settings.<KEY>:
<!-- template.html --> {% if not settings.DEBUG %} <script>ga('create','{{ settings.GA_ID }}','auto');</script> {% endif %}
settings变量是dict子类的实例,因此 您可以使用dict提供的所有方法。例如,可以迭代 键和值使用,settings.keys,settings.values, settings.items等:
{% for key, value in settings.items %} {{ key }}: {{ value }} {% endfor %}
更改settings变量名
如果希望将上下文变量的名称更改为 settings,添加SETTINGS_EXPORT_VARIABLE_NAME = 'custom_name' 给你的settings.py。当其他插件已经在添加 settings到模板上下文。
# settings.pyFOO='bar'SETTINGS_EXPORT=['FOO']SETTINGS_EXPORT_VARIABLE_NAME='my_config'
<!-- template.html -->
{{ my_config.FOO }}
异常
可以引发这些自定义异常:
- 在SETTINGS_EXPORT中列出未定义的设置键将导致 UndefinedSettingError。
- 访问模板中settings对象上未报告的设置键 结果为UnexportedSettingError。
来自django_settings_export.SettingsExportError的所有子类。
演示和测试
查看捆绑包的源代码 demo app。
开发
$ cd tests # Run demo $ python manage.py runserver # Run tests on current Python $ python manage.py test# Run tests on all Pythons $ tox
更改日志
许可证
疯牛病。有关详细信息,请参见LICENCE。