Genshi的Django集成
django-genshi的Python项目详细描述
Author: | John Millikin |
---|---|
Copyright: | This document has been placed in the public domain. |
概述
django-genshi是genshi周围的一个小包装库,它提供 类似于django.template的api。包括模仿 Context和RequestContext。还有一个实现 适用于Genshi的Django模板加载程序系统,以及 快捷方式功能。
用法
有关详细使用说明,请参见django[1]和genshi[2]文档。 django-genshi的api旨在镜像django的api,而 编写或操作模板需要了解genshi。
genshi不能使用django的默认模板加载程序来解决这个问题, app_directories、eggs和filesystem加载程序 已修改并包含在django_genshi.loaders包中。避免 与Django的模板系统冲突,请将此类加载程序放在 GENSHI_TEMPLATE_LOADERS设置。
示例:
>>> from django_genshi import render_to_response >>> response = render_to_response ('template_name.xml', {"name": "world"}) >>> print response.content <h1>Hello world!</h1>
[1] | http://docs.djangoproject.com/en/dev/ref/templates/api/ |
[2] | http://genshi.edgewall.org/wiki/Documentation |
输出类型自动检测
因为genshi基于抽象标记流,所以 要呈现为多个输出表示形式的模板(如HTML或 XHTML)。呈现的决定通常基于http Accept标题。shortcuts.render_to_response_autodetect函数 实现了自动检测输出格式的合理算法,以及 作为一般编写自定义编码器的示例。
过滤器
可以使用 GENSHI_TEMPLATE_FILTERS设置。它们将应用于 在呈现 溪流。示例过滤器包含在django_genshi.filters 模块。