将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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 18ab1b358b7a40bda8820f0f0ae0e8d8d1bdaa92a63ebffc5f8f1010470e3ed8 |
|
MD5 | 5781d18ce262042b5cf81f5f010c7f98 |
|
BLAKE2b-256 | a9905fbb2f0d93a294201f80ba127450e3406749c22623df001f4bbbbcf0e0b8 |