`
txf2004
  • 浏览: 6973102 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Realazy � 测试 Google App Engine

阅读更多

一不小心从某 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 秒去提取后台的最新消息。有几个小细节还是值得总结一下的:

  1. 由于 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]))
  2. 对于 iterable 的对象, 先要 list 它转成列表,才可以使用 reversed 等相关方法。
  3. 需要取最新的 n 条信息,即数据库末尾的 n 条,但是又要顺序,可以先按逆序取 n 条,再反向排序(由此引发上条启示)。
  4. 对于任何用户输入的东西都要做过滤,一开始我在用户名那块忽略了,结果马上有人 XSS 了。这应该是基本常识,应铭记于心。
  5. 一定要处理异常。

由于 GAE 这个天上掉的馅饼,我想我近期的精力会放到 Python 上了,有计划地把 blog 迁徙到 GAE 上,并开发一些有趣地程序。GAE rocks. 老实说,这是搜索、Gmail 后,对我而言可以排到第三的 Google 服务了。

分享到:
评论

相关推荐

    初探jquery——表单应用范例

    说来满惭愧的,到今天才接触到jquery,实在是有点晚,不过既然接触到了这么好的东东,就一定要好好挖掘一下。先来共享几个jquery的资源站Plugins – jQuery ...http://realazy.org/blog/2006/08/31/small-jqu

    JavaScript入门学习书籍推荐

    更详细的评论可以看 Realazy 在豆瓣上的评论在 豆瓣 上的评论《通往终点的过程与终点本身同样重要》 基础学习书籍:《JavaScript 权威指南》 《JavaScript DOM 编程艺术》只是入门,介绍了编程思想

    JavaScript 数组的 uniq 方法

    =b 保序是指,若a在Array的下标小于b在Array的下标,则a在Array1中的下标也小于b在Array的下标 Array2=Array-Array1,保序 realazy给出了一个新解,思路非常清晰:顺序遍历访问每个元素,如果这个元素的值已经访问过...

    cxa.github.com:个人页面

    realazy 网站的生成器,使用 OCaml 编写。Quick Startbrew install opamopam install tyxml tyxml-ppx omd markup syndiccd mksitesh mksite.sh版权声明OCaml 程序虽不通用,但如果你发现对你有所帮助的话,请任意取...

    论WEB标准在中国的灰飞烟灭

    然而,仍有像aoao.org.cn、realazy.org、bingo929.com以及JustinYoung的cnblogs.com等网站坚持提供最新的Web标准资讯和实践指导。他们持续翻译和分享国外先进的开发理念,推动着Web标准在国内的落地生根。尽管面临...

Global site tag (gtag.js) - Google Analytics