表示层确保通过它的通信以目标收件人为目标. CherryPy通过各种模板引擎维护表示层的工作.
模板引擎在业务逻辑的帮助下获取页面的输入,然后将其处理到最终页面,该页面仅针对目标受众.
孩子 - 模板引擎
孩子是一个简单的模板引擎,其中包含模板的名称要处理(这是必须的)并在渲染模板时输入要传递的数据.
在第一次创建模板时,Kid创建了一个Python模块,它可以作为模板的缓存版本.
kid.Template 函数返回模板类的一个实例,可用于呈现输出内容.
模板类提供以下一组命令 :
S.No | 命令&说明 |
---|---|
1. | serialize 它以字符串形式返回输出内容. |
2. | generate 它将输出内容作为迭代器返回. |
3. | write 它将输出内容转储到文件对象中. |
这些命令使用的参数如下 :
S.No | 命令&说明 |
---|---|
1. | 编码 它通知如何编码输出内容 |
2. | 片段 这是一个布尔值,告诉XML prolog或Doctype |
3. | 输出 这种类型的序列化用于呈现内容 |
示例
让我们举一个例子来了解 kid 的工作方式和减号;
${title} ${message}
The next step after saving the file is to process the template via the Kid engine.import kidparams = {'title': 'Hello world!!', 'message': 'CherryPy.'}t = kid.Template('helloworld.kid', **params)print t.serialize(output='html')
Kid's Attributes
以下是Kid : 的属性;
基于XML的模板语言
它是一种基于XML的语言. Kid模板必须是具有适当命名约定的格式良好的XML文档.
Kid在XML元素中实现属性,以更新要到达元素的操作的底层引擎.为了避免与XML文档中的其他现有属性重叠,Kid引入了自己的命名空间.
...
变量替换
Kid带有变量替换方案和简单方法 - $ {variable-name}.
变量既可以用在元素的属性中,也可以用作元素的文本内容. Kid会在每次执行时评估变量.
如果用户需要文字字符串的输出为$ {something},则可以使用变量替换来转义它.加倍美元符号.
条件语句
为了在模板中切换不同的情况,使用以下语法 :
...
这里,tag是元素的名称,例如DIV或SPAN.
表达式是Python表达.如果作为布尔值计算为True,则元素将包含在输出内容中,否则它将不是输出内容的一部分.
循环机制
对于在Kid中循环元素,使用以下语法 :
...
这里,tag是元素的名称.表达式是一个Python表达式,例如[...]中的值.
示例
以下代码显示了循环机制的工作原理 :
${title}
Artist | Album | Title |
---|---|---|
${info['artist']} | ${info['album']} | ${info['song']} |
带有循环机制的上述代码的输出如下 :