跳转到主要内容

将Web应用程序部分作为瓦片处理。

项目描述

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

将应用程序分割成这样小且逻辑的应用程序部分,可以使其更容易重用,简化应用程序的Ajax化和以不同方式使用相同的应用程序部分。

导入。

>>> from bda.bfg.tile import Tile
>>> from bda.bfg.tile import TileRenderer
>>> from bda.bfg.tile import registerTile
>>> from bda.bfg.tile import tile

我们需要一些占位符作为模型和请求。

>>> class Model(object): pass
>>> model = Model()
>>> from repoze.bfg.request import DEFAULT_REQUEST_FACTORIES
>>> request = DEFAULT_REQUEST_FACTORIES[None]['factory'](environ={})

纯Tile本身。通常您不会直接创建它,这是由于注册完成的,请参见下文。

>>> mytile = Tile('testdata/tile1.pt', None)
>>> mytile(model,  request)
u'<span>Tile One</span>'

使用先前的模板testtemplate注册瓦片。如果没有提供对象,则将默认瓦片实例化为上述内容。

>>> registerTile('tileone', 'testdata/tile1.pt')

渲染已注册的瓦片。

>>> TileRenderer(model, request)('tileone')
u'<span>Tile One</span>'

现在需要装饰器 - level=1 仅用于doctest以减少模块级别。

>>> @tile('tiletwo', 'testdata/tile2.pt', level=1)
... class Tile2(Tile):
...     data = u'custom'
>>> TileRenderer(model, request)('tiletwo')
u'<span>Tile Two: <b><span>Tile One</span></b></span>'

您可以定义一个负责渲染瓦片的属性,而不是定义模板。默认情况下,取render。使用关键字参数attribute,您可以指向不同的属性。

>>> @tile('attrtile')
... class Tile2(Tile):
...     def render(self):
...         return u'<h1>Rendered via attribute call</h1>'
>>> TileRenderer(model, request)('attrtile')
u'<h1>Rendered via attribute call</h1>'
>>> @tile('attrtile', attribute='foobar')
... class Tile2(Tile):
...     def foobar(self):
...         return u'<h1>Rendered via attribute foobar call</h1>'
>>> TileRenderer(model, request)('attrtile')
u'<h1>Rendered via attribute foobar call</h1>'

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。

源分发

bda.bfg.tile-1.0.tar.gz (5.0 kB 查看哈希值)

上传时间

由以下组织支持

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