Pyramid视图层
项目描述
player
player允许使用两个参数来引用模板,类别和名称。还可以为每个层使用一组目录,在这种情况下,player会在每个目录中搜索模板。这允许在不更改代码的情况下覆盖模板。例如,表单库可以定义类别为< cite> field cite>的层。
>> ls ./fields/ .. bool.pt .. file.pt ... .. textarea.pt
在您的应用程序中,您可以通过定义新层来覆盖这些模板中的任何一个,该层针对< cite> field cite>类别。
>> ls ./myproject/fields/ .. bool.pt
通常顶级目录是一个类别,目录中的文件是模板。例如‘form:view.lt’
`form` - layer category `view` - template name `.lt` - custom pyramid renderer factory
可以使用< cite> add_layer cite>配置指令来定义层。
>> config = Configurator()
.. config.include('player')
..
.. config.add_layer('form', path='./path_to_form_dirctory/form/')
< cite> form cite>目录可以包含任何模板。
>> ./form/
.. view.pt
.. actions.jinja2
可以使用这些模板中的任何一个作为pyramid渲染器路径
>> config.add_view(
.. name='view.html',
.. renderer='form:view.lt')
或
>> config.add_view(
.. name='actions.html',
.. renderer='form:actions.lt')
可以在渲染模板之前运行Python代码。有< cite> add_tmpl_filter cite>指令和< cite> player.tmpl_filter cite>装饰器
>> def form_actions(context, request):
.. return {'url': ...}
>> config.add_tmpl_filter('form:actions', form_action, name='custom')
或
>> import player
>> @player.tmpl_filter('form:actions', name='custom')
.. def form_actions(context, request):
.. return {'url': ...}
< cite> form_actions cite>函数在渲染模板之前被调用。在注册模板过滤器函数之前,必须使用< cite> add_layer cite>指令定义层。
自定义
可以注册任意数量的层类别,并且可以在每个类别中注册任意数量的层。不需要覆盖类别中的所有模板。例如,可以仅覆盖view.pt模板
>> config.add_layer('form', 'custom', path='path_to_form_directory_2/form')
以及此新目录的内容
>> ./another_path/form/ .. view.jinja2
现在view < cite> view.html cite>使用< cite> view.jinja2 cite>模板。但< cite> actions.html cite>仍然使用原始模板。
另一个例子,如果你想自定义 ptah.form 包中的 bool 字段,你所需要做的就是创建一些文件夹,将其添加为“fields”层,并将 bool.pt 模板放入此文件夹中,类似这样
>> config.add_layer('fields', 'custom', 'mypackage:fields')
并且
>> .mypackage/fields/ .. bool.pt
请求方法
player 还提供了 render_tmpl 请求方法。它接受路径
.. ${structure: request.render_tmpl('form:actions')
.lt 扩展在这种情况下是可选的。
player
…
许可
player 提供 BSD 许可。
变更
0.6.1 (01-22-2013)
添加了 python 2.6
0.6 (12-10-2012)
允许在 render 函数中使用标准渲染器
0.5 (11-30-2012)
使用 jinja2 作为模板
添加了 layout_data 请求属性
允许向 error 消息传递多个消息
0.4 (11-12-2012)
添加了 player.layout 渲染器
向 player 控制台脚本添加了 -c 参数,它允许自定义模板
set_layout_data 接受关键字参数
删除了 player.wrap_layout()
删除了 python2.6 支持
0.3 (11-07-2012)
添加了 set_layout_data 请求方法,允许设置全局布局选项
添加了状态消息
添加了格式化程序
0.2 (11-01-2012)
添加了 layout 子系统
0.1 (10-30-2012)
初始发布
项目详情
player-0.6.1.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | a55bb34b73627c5a9164804a428de421b08ae4926cc5f5d78f6e72f96b82522f |
|
MD5 | 20a25fd8b8d234eb32e2796052e565f6 |
|
BLAKE2b-256 | 66a9699a6820e8169d28d1372f28c77e4d3f0086dddc670645edb1ec4671a051 |