用于pyramid框架的瓦片。
项目描述
此软件包提供用于pyramid框架的标记片段渲染,组织为瓦片。
瓦片是Web应用程序的一部分,例如表单、导航等。
将您的应用程序分成如此小且逻辑的应用程序部分,使得重用此应用程序变得容易,简化了应用程序的AJAX化和以不同方式使用相同的应用程序部分。
用法
注册瓦片
瓦片的注册类似于pyramid视图。注册通过类上的cone.tile.tile装饰器完成。
from cone.tile import tile
from cone.tile import Tile
@tile(
name='b_tile',
path='package:browser/templates/b_tile.pt',
permission='view',
strict=False)
class BTile(Tile):
pass
还存在一个cone.tile.register_tile函数。现在不应直接使用它。 tile装饰器将此函数附加到venusian以延迟瓦片注册。
from cone.tile import register_tile
register_tile(
name='a_tile',
path='package:browser/templates/a_tile.pt',
permission='view')
tile装饰器接受以下参数
- name
瓦片的标识符(用于以后查找)。
- path
模板的相对路径或绝对路径,或以绝对包名前缀的路径。如果使用path,则忽略attribute。
- attribute
在给定类上用于渲染瓦片的属性。默认为render。
- interface
瓦片注册的pyramid模型接口或类。
- class_
用于渲染瓦片的类。通常为 cone.tile.Tile 或其子类。承诺实现 cone.tile.ITile 接口。当使用 tile 装饰器时,期望作为瓦片实现的装饰类。
- 权限
启用此瓦片的安全检查。默认为 view。如果设置为 None,则禁用安全检查。
- 严格
如果渲染不被允许,是否抛出 Forbidden 异常。默认为 True。如果设置为 False,则异常将被消费,并返回一个空 Unicode 字符串。
可以在应用程序初始化期间通过重新注册来覆盖瓦片,而无需更改其他设置。这对于应用程序的主题化和定制非常有用。
渲染瓦片
使用 render_tile 函数进行瓦片渲染
from cone.tile import render_tile
rendered = render_tile(model, request, name)
在绑定到瓦片的模板内部,可以通过 tile 在当前模型和请求上渲染更多瓦片。
<tal:sometile replace="structure tile('tilename')" />
瓦片
瓦片类似于 zope 世界中已知的内容提供者。
在执行瓦片渲染之前,会调用 prepare 函数(可用于加载数据等)。
此外,会考虑 show 标志(可能在 prepare 函数中设置),如果其评估结果为 False,则跳过渲染。
关于渲染的更多内容
存在一些辅助函数用于渲染,它们将瓦片渲染器传递给模板以调用子瓦片,并考虑重定向。
瓦片类提供了一个重定向函数,它期望一个包含 URL 的字符串或 webob.exc.HTTPFound 实例。这会导致跳过剩余瓦片的渲染,并将 request.environ['redirect'] 设置。
- cone.tile.render_template
渲染模板。将瓦片渲染器传递给模板。考虑重定向。如果找到重定向,则返回空字符串。
- cone.tile.render_template_to_response
将模板渲染为响应。将瓦片渲染器传递给模板。考虑重定向。如果找到重定向,则返回 HTTPFound 实例,否则返回渲染的响应。
- cone.tile.render_to_response
在考虑重定向的情况下将某些结果渲染到响应中。如果找到重定向,则返回 HTTPFound 实例,否则返回渲染的响应。
贡献者
Robert Niederreiter
Jens Klein
Attila Olah
更改
1.1 (2022-12-05)
发布轮。 [rnix]
1.0 (2019-11-07)
删除对 pyramid < 1.5 的支持。 [rnix, 2019-03-24]
Python 3 兼容性。 [rnix, 2019-03-24]
如果可用,则不使用 cgi 模块。 [rnix, 2019-03-24]
将 doctests 转换为 unittests。 [rnix, 2019-03-21]
tile 装饰器现在使用 venusian 来延迟瓦片注册。 [rnix, 2015-11-06]
在 register_tile 和 tile 装饰器中,将 name 作为关键字参数而不是位置参数接受。 [rnix, 2015-11-06]
registerTile 已重命名为 register_tile。 [rnix, 2015-11-06]
更新到 pyramid 1.5 [rnix, 2015-11-02]
由于此更改,删除了无用的测试用例。 https://github.com/Pylons/pyramid/commit/4b552e539a1725356b9982261b73fd88de7d59a1#diff-bcda6948340ab38542fe18fd2365ac70R144 [rnix, 2015-11-02]
0.9.6
在 render_template 中使用 traceback 模块而不是 zope.exceptions 来格式化异常。 [rnix, 2017-10-06]
0.9.5
删除 log_exception 工具,并在 cone.tile._api.render_template 中使用注册的 IDebugLogger 进行异常记录。 [rnix, 2017-03-24]
0.9.4
瓦片注册的 name 如果在 registerTile 函数和 tile 装饰器中未指定,则从 Tile 子类中获取。 [rnix, 2017-02-17]
name 现在在 registerTile 函数和 tile 装饰器中是可选的。 [rnix, 2017-02-17]
在 registerTile 函数和 tile 装饰器中,默认 attribute 现在是 None,以确保在设置的情况下考虑 Tile 子类的 attribute。 [rnix, 2017-02-17]
Tile.name、Tile.path 和 Tile.attribute 可以在 Tile 子类中直接设置,而不需要在瓦片注册时被覆盖。 [rnix, 2017-02-17]
0.9.3
在 render_tile 中捕获的错误可能包含重音符号。正确解码错误字符串。 [rnix, 2017-02-13]
0.9.2
现在使用 zope.exceptions 来格式化带有补充信息的回溯。 [jensens, 2012-06-06]
改进了回溯的可见性,现在它们出现在错误日志中。即使表达式如 `tal:replace="structure tile('editform')"` 隐藏了它,回溯也会被记录。回溯补充会被渲染。 [jensens, 2012-06-05]
删除了多余的 try except [jensens, 2012-06-05]
修复了集成测试的依赖项 [jensens, 2012-06-05]
0.9.1
瓦片可以被覆盖。 [rnix, 2012-05-22]
使用 zope.interface.implementer 而不是 zope.interface.implements。 [rnix, 2012-05-18]
0.9
兼容 pyramid 1.1 + 1.2 [rnix, 2011-09-08]
文档 [rnix, 2011-09-08]
让它工作 [jensens, rnix, 等等]
许可
版权 (c) 2009-2021,BlueDynamics Alliance,奥地利 版权 (c) 2021-2022,Cone 贡献者 保留所有权利。
在满足以下条件的情况下,允许重新分发和使用源代码和二进制形式,无论是否修改
源代码的重新分发必须保留上述版权声明、本条件列表和以下免责声明。
二进制形式的重新分发必须在文档和/或其他随分发提供的材料中复制上述版权声明、本条件列表和以下免责声明。
本软件由版权所有者和贡献者提供,“按原样”提供,并不承担任何明示或暗示的保证,包括但不限于适销性和适用于特定目的的暗示保证。在任何情况下,版权所有者或贡献者均不对任何直接、间接、偶然、特殊、示范性或后果性的损害(包括但不限于替代商品或服务的采购、使用、数据或利润的损失;或业务的中断)承担责任,无论这种损害是由于何种原因造成的,无论是在合同、严格责任还是侵权(包括疏忽或其他)中产生的,即使被告知了这种损害的可能性。
项目详情
下载文件
下载适合您平台的应用程序。如果您不确定要选择哪个,请了解有关 安装软件包 的更多信息。
源代码分发
构建的发行版
cone.tile-1.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b5eb55d3c95e3ca4cebfa77431a2722c1ac26627f14f4d888fd8e8a7c9b7c71b |
|
MD5 | 89e3333513914c75f83b304ed5e0e307 |
|
BLAKE2b-256 | 2fbb2ba4786bf5d802279df2bae8a377c3db79c64dfd00889c6983185c918246 |
cone.tile-1.1-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4474513776b7d5da2057a4346f51c142040ff1394def0459037cb4deb0433346 |
|
MD5 | 1cff8e8f7978263e94807e1195e8ea50 |
|
BLAKE2b-256 | 2a2c9f4407c59850c04b6a071b0cb078570ac5c89b15c8bb9aac406fca961dc2 |