一不小心从某 blog 中第一时间发现 Google App Engine 发布,立马注册一个。当天晚上抽空看了看文档,做了做hello world,第二天晚上开始写一个聊天室程序,第三天晚上拿出 Python 技术手册,捣腾到今天才把一个简单的东西弄出来。去年学了一段时间的 Python, 还用 webpy 写了一个不成型的 blog 系统。某段时间认识自己不足,苦读了两个月的 C,后来买了 macbook, 又一头扎进 Objective-C 和 Cocoa, 哈哈哈,总之,一事无成吧。现在 GAE 出来了,突然发现一直寻找的 Python hosting 就这么从天上掉下来了,而且还是馅饼……重新激起 Python 兴趣,却发现又忘得差不多了……
废话太多了……这个测试 demo 叫 chatlazy, 位于 http://chatlazy.appspot.com. 是一个简易聊天室,后台部分,就是 Python 了,具体一点,是 webpy 0.3 (开发版,未发布)。机制十分简单,就是前端使用 JavaScript 隔 5 秒去提取后台的最新消息。有几个小细节还是值得总结一下的:
- 由于 GAE 的数据 ID 使不能用在 Gql 中的,我只能通过时间戳来比对消息状态。把
datetime和秒数 + 毫秒数的互转,还是比较繁琐的。Python 技术手册帮了我很大忙。解决方案大致如此:str(time.mktime(d.timetuple()))[:-1] + str(d.microsecond)反过来则是:
p = str(t).split('.') tp = time.localtime(float(p[0])) dt = datetime(tp[0], tp[1], tp[2], tp[3], tp[4], tp[5]+1, int(p[1])) - 对于
iterable的对象, 先要list它转成列表,才可以使用reversed等相关方法。 - 需要取最新的 n 条信息,即数据库末尾的 n 条,但是又要顺序,可以先按逆序取 n 条,再反向排序(由此引发上条启示)。
- 对于任何用户输入的东西都要做过滤,一开始我在用户名那块忽略了,结果马上有人 XSS 了。这应该是基本常识,应铭记于心。
- 一定要处理异常。
由于 GAE 这个天上掉的馅饼,我想我近期的精力会放到 Python 上了,有计划地把 blog 迁徙到 GAE 上,并开发一些有趣地程序。GAE rocks. 老实说,这是搜索、Gmail 后,对我而言可以排到第三的 Google 服务了。
April 11th, 2008
by zhu
可以反过来,以秒数+毫秒数为主(time.time()),需要用到datetime的时候再datetime.fromtimestamp(time.time())
April 11th, 2008
by zhu
python2.4之后可以用reversed(iterable)反转,不需要转成list
April 12th, 2008
by 张沈鹏
时间戳为什么不直接用
>>> import time
>>> time.time()
1207934062.3429999
April 12th, 2008
by zhiqiang
怎么把把 blog 迁徙到 GAE 上?
能具体介绍一下GAE能实现什么功能么?
April 12th, 2008
by alang
好东西。玩玩看。
April 13th, 2008
by 北极冰仔
我是今天才发现这个东西的,总算有了学习的新目标了 -__-||
April 14th, 2008
by ban
遇高人,不可交臂失之
April 25th, 2008
by lphy
是蛮不错的:)
原来一直看python有多么好,一直懒得在服务器上装py支持,这下好了,有个折腾的地方了^_^
我的GAE:http://lphy.appspot.com
留言版:http://lphy.appspot.com/guest
May 7th, 2008
by ipie
看来大家都动作都挺快的~
我得抓紧了
May 29th, 2008
by kevin
去年这个时候我同学就叫我去学Python
July 14th, 2008
by Haidong
你说的挺对的,app engine最近google 推的很厉害,Google IO 中能体会到这个讯息。
现在美国的趋势基本就是赢developer者赢天下
December 28th, 2008
by Robin
能否请教一下,为什么不用Django呢?Django和webpy的优缺能大概说一下吗?谢谢
February 15th, 2009
by yanzi
我自己做了一个在线代理,拿出来和大家共享一下。
http://quick-proxy.appspot.com
March 12th, 2009
by weizhe86
我把你的界面借过来用了,不要见怪。
添加了google帐号,和时区修正。
http://appshow.appspot.com
有问题留言
June 10th, 2009
by ruishi
你好,我是一个app engine 和python一个初学者,请问能不能麻烦你把那个留言板的代码给我学习下,谢谢了.我的邮箱是zhn.1@163.com