web.py+gae= 我的第一个留言板【二】
下面接着说说 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