棱锥视图图层
pyramid_layer的Python项目详细描述
金字塔层
金字塔层允许用两个参数来寻址模板, 类别和名称。也可以使用一组目录 对于每个层,在这种情况下金字塔层搜索模板 在每个目录中。它允许覆盖模板而不更改 代码。例如,表单库可以定义层字段:
>> ls ./fields/ .. bool.pt .. file.pt ... .. textarea.pt
在应用程序中,可以通过定义 字段的新层类别:
>> ls ./myproject/fields/ .. bool.pt
通常顶级目录是一个类别,目录中的文件是模板。 例如“form:view.lt”:
`form` - layer category `view` - template name `.lt` - custom pyramid renderer factory
可以使用add_layerconfig指令定义层:
>>config=Configurator()..config.include('pyramid_layer')....config.add_layer('form',path='./path_to_form_dirctory/form/')
表单目录可以包含任何模板:
>>./form/..view.pt..actions.jinja2
可以将这些模板中的任何一个用作棱锥体渲染器路径:
>>config.add_view(..name='view.html',..renderer='form:view.lt')
或:
>>config.add_view(..name='actions.html',..renderer='form:actions.lt')
可以在呈现模板之前运行python代码。 有add_tmpl_filter指令和pyramid_layer.tmpl_filter 装饰工:
>>defform_actions(context,request):..return{'url':...}>>config.add_tmpl_filter('form:actions',form_action,name='custom')
或:
>>importpyramid_layer>>@pyramid_layer.tmpl_filter('form:actions',name='custom')..defform_actions(context,request):..return{'url':...}
表单操作函数在呈现模板之前被调用。 在注册之前,必须用add_layerdirectve定义层 模板过滤功能。
定制
可以注册任意数量的图层类别和任意数量的 可以在每个类别中注册层。它不需要重写 类别中的所有模板。例如,可以覆盖 view.pt模板:
>> config.add_layer('form', 'custom', path='path_to_form_directory_2/form')
新目录的内容:
>> ./another_path/form/ .. view.jinja2
现在viewview.html使用view.jinja2模板。但是actions.html 使用原始模板。
另一个例子,如果您想要来自ptah.form包的自定义字段 你只需要创建一些文件夹,将其添加为“fields”层,然后 bool.pt此文件夹的模板,类似于:
>> config.add_layer('fields', 'custom', 'mypackage:fields')
以及
>> .mypackage/fields/ .. bool.pt
请求方法
金字塔层还提供请求方法呈现tmpl。它接受 路径:
.. ${structure: request.render_tmpl('form:actions')
。在这种情况下,lt扩展是可选的。
玩家
…
许可证
金字塔层是根据BSD许可证提供的。
更改
0.2(2012年1月11日)
- 添加了布局子系统
0.1(2012年10月30日)
- 初始版本