此django应用程序允许您将某些设置导出到模板。

django-settings-export的Python项目详细描述


PyPiBuild Status of the master branchCoverage

通常需要对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.keyssettings.valuessettings.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

更改日志

CHANGELOG

许可证

疯牛病。有关详细信息,请参见LICENCE

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
xml Java:如何忽略标记前缀   java Android Sqlite3列由命令行创建,但不是从我的Android代码创建的   java Picasso视图无法在DataAdapter内转换为上下文   java如何在jar文件中修改Android类而无需解包?   如何编辑已编译的Java字节码?   java如何在Android的ExpandableListView中保存子视图onGroupCollaped()中的数据   java Spring启动程序缓存速度缺失?   java相对于返回,Finally块何时运行   为继承层次结构建模。。。JAVA   java将值从内部递归方法传递到外部方法   根据作为参数传递的标志执行各种操作的java设计模式   java如何使用循环显示最大和最小的数字?   简化java if语句   java录制flv断开红色5   java如何在Android中添加图像以列出视图项?   java我如何获得Android中从广播组检查的最后一个单选按钮?   通过ResultSet反向检索数据时发生java NullPointerException   java可以处理Android。打包文件?   java如何构建JNI。动态链接库?   javascript当前请求不是多部分请求