开发手册 欢迎您!
软件开发者资料库

CherryPy - 表示层

CherryPy表示层 - 从简介,环境设置,词汇表,内置Http服务器和内部引擎,工具箱,工作应用程序,Web服务,表示层,Ajax的使用,演示应用程序,测试,简单而简单的步骤学习CherryPy部署应用程序。

表示层确保通过它的通信以目标收件人为目标. 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}                                                                                                                                             
A few songs
ArtistAlbumTitle
${info['artist']}${info['album']}${info['song']}
   import kidparams = discography.retrieve_songs()t = kid.Template('songs.kid', **params)print t.serialize(output='html')

带有循环机制的上述代码的输出如下 :

循环输出