下面接着说说 google application engine 和 webpy 配套的问题。在我完成留言板的时候,这方面的资料还是很少,中文资料更少,希望 webpy 社区能够壮大啊。

gae 据说很有 Django 的风格,也是内置 Django 的,而 web.py 则需要自备。因此,在应用目录中应该放入 web.py 解压后得到的 web 目录。否则会导致 Import error: no module named web

详细的发布过程,可以参考 chinaunix 的这篇文章:http://bbs.chinaunix.net/viewthread.php?tid=1487470 [ 笔记 ]Google App Engine 上试用 web.py

由于 gae 的限制,应用的模板文件需要编译后才能在 gae 上执行读取,否则会导致 No module named templates 。上面的文章有具体的解决办法。

注意,源代码的 app.run() 需要改成 main=app.cgirun() 才能正常工作。 否则会导致 ImportError: No module named flup.server.fcgi

gae 上面只能使用 google 的数据库,使用称为 gql 的查询语言。

要定义一个表:

from google.appengine.ext import db

content=db.StringProperty(multiline=True)

date=db.DataTimeProperty(auto_now_add=True)

title=db.StringProperty(multiline=False)

myKey=db.StringProperty(multiline=False)

db.get(db.Key(myKey))

批量查询:

db.GqlQuery(“SELECT * FROM data ORDER BY date DESC”)

record=data()

设置 record 的相关属性

record.put()

删除记录:

q=db.get(db.Key(myKey))

db.delete(q)

与 python 自带的 web server 不同,在 gae 中 print 语句也是直接输出到浏览器而不是服务器的日志中。 像是一个典型的 cgi 应用。

比较有参考价值的文章:http://hi.baidu.com/xusx/blog/item/801704fa5d84259258ee90dd.html 手把手教程,没读完

            http://baiduer.net/2010/03/05/ 使用 webpy 创建一个 blog/ 另一个手把手。。。

最后推荐几个用 python 写的 blog: http://maoxingxu.appspot.com 这个是国内的技术人写的。

					[http://www.k4ml.com/archive/old/page165.html](http://www.k4ml.com/archive/old/page165.html) 这个风格很简洁。。。

					[http://webpy.appspot.com](http://webpy.appspot.com/)   这个非常值得参考,似乎就是 webpy 的人写出来的。

					[http://micolog.appspot.com/zh-cn](http://micolog.appspot.com/zh-cn) 目前比较通用的 blog,可以直接使用。 

我的留言本源代码:/Files/Lifehacker/myApp.7z