📅  最后修改于: 2020-10-26 05:23:35             🧑  作者: Mango
表示层确保通过它的通信以目标接收者为目标。 CherryPy通过各种模板引擎维护表示层的工作。
模板引擎借助业务逻辑获取页面的输入,然后将其处理到仅针对目标受众的最终页面。
Kid是一个简单的模板引擎,其中包括要处理的模板的名称(这是必需的)和在渲染模板时输入要传递的数据。
首次创建模板时,Kid会创建一个Python模块,该模块可用作模板的缓存版本。
kid.Template函数返回模板类的实例,该实例可用于呈现输出内容。
模板类提供以下命令集-
S.No | Command & Description |
---|---|
1. |
serialize It returns the output content as a string. |
2. |
generate It returns the output content as an iterator. |
3. |
write It dumps the output content into a file object. |
这些命令使用的参数如下-
S.No | Command & Description |
---|---|
1. |
encoding It informs how to encode the output content |
2. |
fragment It is a Boolean value which tells to XML prolog or Doctype |
3. |
output This type of serialization is used to render the content |
让我们以一个例子来了解孩子如何工作-
${title}
${message}
The next step after saving the file is to process the template via the Kid engine.
import kid
params = {'title': 'Hello world!!', 'message': 'CherryPy.'}
t = kid.Template('helloworld.kid', **params)
print t.serialize(output='html')
以下是Kid的属性-
它是一种基于XML的语言。 Kid模板必须是具有正确命名约定的格式正确的XML文档。
Kid在XML元素内实现属性,以更新到达该元素要遵循的操作的基础引擎。为了避免与XML文档中的其他现有属性重叠,Kid引入了自己的名称空间。
...
Kid带有变量替换方案和一种简单的方法-$ {variable-name}。
变量可以在元素的属性中使用,也可以用作元素的文本内容。每次执行时,Kid都会评估该变量。
如果用户需要将字面量字符串的输出作为$ {something},则可以使用变量替换通过将美元符号加倍来对其进行转义。
为了在模板中切换不同的情况,使用以下语法-
...
在这里,tag是元素的名称,例如DIV或SPAN。
该表达式是Python表达式。如果作为布尔值评估为True,则该元素将包含在输出内容中,否则将不属于输出内容。
为了在Kid中循环元素,使用以下语法-
...
在这里,tag是元素的名称。该表达式是一个Python表达式,例如[…]中的值。
以下代码显示了循环机制的工作原理-
${title}
A few songs
Artist
Album
Title
${info['artist']}
${info['album']}
${info['song']}
import kid
params = discography.retrieve_songs()
t = kid.Template('songs.kid', **params)
print t.serialize(output='html')
带有循环机制的上述代码的输出如下-