Log in

Google App Engine 入门:使用模版文件

May 16th, 2008

(本文译自:Google App Engine Getting Started)

HTML代码是非常杂乱的,所以我们最好使用一个独立的文件来专门处理HTML代码,以便于将界面显示和数据获取的过程相互独立出来。有很多使用Python实现的模板系统,比如: EZT, Cheetah, ClearSilver, QuixoteDjango 等等.你可以选择这里面的任意一个。

为了大家方便,  webapp 模块默认包含了Django的模板系统.Django模板是Google App Engine的一部分,所以你不需要单独进行绑定就可以直接使用。

使用 Django 模板

首先在 helloworld/helloworld.py中引入template模块

import os from google.appengine.ext.webapp import template

重新编写 MainPage 处理过程:

class MainPage(webapp.RequestHandler): def get(self): greetings = Greeting.all().order(-date) if users.get_current_user(): url = users.create_logout_url(self.request.uri) url_linktext = Logout else: url = users.create_login_url(self.request.uri) url_linktext = Login template_values = { greetings: greetings, url: url, url_linktext: url_linktext, } path = os.path.join(os.path.dirname(__file__), index.html) self.response.out.write(template.render(path, template_values))

最后, 在 helloworld 的路径下创建一个新文件index.html, 内容如下:

<html> <body> {% for greeting in greetings %} {% if greeting.author %} <b>{{ greeting.author.nickname }}</b> wrote: {% else %} An anonymous person wrote: {% endif %} <blockquote>{{ greeting.content|escape }}</blockquote> {% endfor %} <form action="/sign" method="post"> <div><textarea name="content" rows="3" cols="60"></textarea></div> <div><input type="submit" value="Sign Guestbook"></div> </form> <a href="{{ url }}">{{ url_linktext }}</a> </body> </html>

刷新,并查看结果.

template.render(path, template_values) 接受输入一个文件路径和一个dictionary类型的数据字典,并输出一段经过处理的文本。这个模板使用了Django模板的语法.在模板文件中可以直接使用引入的值,并且可以使用这些对象的属性。在许多实际例子里,你可以直接使用GAE数据模型,并访问他们的属性.

Tip:  App Engine 应用程序对所有上传的文件的访问权限都是只读的,所以对文件的写操作是被禁止的;当前工作路径是应用程序的根目录,所以 index.html 的路径可以简单写成 "index.html".

想要了解Django模板的详细语法,请查看 the Django 0.96 template documentation.

接下来…

绝大多数web应用程序都会输出通过模板动态生成的HTML代码. 而大多数Web应用还需要处理静态文件,如:图像, CSS ,  JavaScript 脚本. 为了了提高效率, App Engine 对静态文件进行了特殊的处理.下一章,我们就会演示如果为这个应用添加CSS风格的支持.

下一章: 使用静态文件

相关阅读

标签:



“Google App Engine 入门:使用模版文件”共有2个评论

  1. Google App Engine 入门:目录 - 徐明的博客 说:

    […] 使用模版文件 学习使用模板文件来显示网页,让数据和页面分离,加快网站开发速度 […]

  2. krissy 说:

    15JiP4 gfb07yvt9d6t94wbtx63bgq7d

我要留言

订阅

google reader 抓虾
bloglines my yahoo
哪吒 鲜果
* 更多订阅本站方式请看 订阅帮助