跳转到主要内容

用于pyramid框架的瓦片。

项目描述

此软件包提供用于pyramid框架的标记片段渲染,组织为瓦片。

瓦片是Web应用程序的一部分,例如表单、导航等。

将您的应用程序分成如此小且逻辑的应用程序部分,使得重用此应用程序变得容易,简化了应用程序的AJAX化和以不同方式使用相同的应用程序部分。

Latest PyPI version Number of PyPI downloads https://travis-ci.org/bluedynamics/cone.tile.svg?branch=master https://coveralls.io/repos/github/bluedynamics/cone.tile/badge.svg?branch=master

用法

注册瓦片

瓦片的注册类似于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_tiletile 装饰器中,将 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.nameTile.pathTile.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 (18.9 kB 查看哈希值)

上传于

构建的发行版

cone.tile-1.1-py3-none-any.whl (17.5 kB 查看哈希值)

上传于 Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面