浅尝WSGI

标签:Python

由于很多Python的web框架在Google App Engine上的性能都不太好,因此想自己去做个框架,便研究了一下WSGI协议。

这个协议实际上很简单,就是建立一个服务器,这个服务器接收一个callable的对象application。
每当有访问,服务器就将环境变量environ和输出header所用的start_response函数传给application。
而application需要从environ里找出访问参数,用start_response输出header,并返回一个iterable的对象。
服务器接收到这个对象后,就会将它输出给访问者。

在GAE中使用hook

标签:Google App Engine, Python

实际上Google App Engine文章中早就有一篇《在 Google App Engine 中使用 hook》来介绍hook技术了,只是当时对我没用,加上写得很难懂,所以没去细读。
而最近在考虑做blog,想像Discuz!一样做个性能评估,将页面生成时间、数据库访问次数等输出出来。
要实现这个功能的话,一般是需要自己封装一下数据库调用函数,在每次调用时记录下时间和增加调用次数,不过这样改动太大,所以就想到了hook,于是再次读了一遍。

GAE数据库对时间属性的精确查询

标签:Google App Engine, Python

考虑一个聊天室的消息模型,一般会有如下属性
class Message(db.Model):
  author = db.UserProperty(auto_current_user_add=True)
  content = db.StringProperty(multiline=True)
  time = db.DateTimeProperty(auto_now_add=True)
为了省事,我不想去维护一个ID字段,只想对time字段排序,并查询出比最近一次查询结果的时间更晚的消息。

推荐一个支持Python的免费虚拟主机

标签:PHP, Python

今天刚发现freehostia支持Python,所以就推荐下。
当然,PHP和Perl也是支持的,不过只有一个10MB的MySQL数据库,空间为250MB,月流量6GB,单个文件512KB,最多5万个文件,CPU 1.3%。
如果这些限制对你来说不算什么的话,那就往下看吧。

解决了pyTenjin的IndentationError问题

标签:Python

前几天试用pyTenjin时遇到个奇怪的问题,if、for这种需要缩进的语句经常会出现这种错误:
IndentationError: unexpected indent
而且恼火的是,在一个页面这样写没问题,另一个页面用同样的结构就会出错,甚至只是多了个空行也会报错。
我翻遍了pyTenjin所有的文档,在Google上搜索了半天,仍没找到解决办法。

« 看看还有什么好玩意