最近体验了一把web.py开发的便捷。
建议在看web.py的cookbook之前,对http协议的get方法和post方法先了解一下,html最好也要有基本的知识。
web.py的工作流程,一般是从URL映射开始,然后把请求分派给不同的处理类处理,处理类比较像一个粘合层,负责从数据层拿数据,以及告诉render如何形成最后的页面效果。同时,它也负责控制整个交互的过程。数据层封装了数据库相关的操作,有了它,可以很方便的更换不同的数据库。当然,在具体的字段属性上,可能会有一定的差异,需要注意一下。
render是一个模板渲染系统,它使html变成了类似函数一样的东西,可以通过变量填充形成最终的页面。通过$符号,就能直接在html中写python语句,方便扩展功能。 为了控制网站的整体风格,可能需要一个统一的layout.html和css去控制一些公共的框架。
因此,遇到问题的时候,请从URL映射开始,遵循工作流程查找问题所在。特别是500服务器内部错误,很有可能是改动的时候只改了一处地方,相配合的负责展现的html模板或者数据层没有进行对应的修改。
web.py还是比较简便的,我不太喜欢厚厚的粘合层,像structs什么的,最讨厌了^^ 不过python的确有点慢,即使web.py已经自动编译成pyc,速度上还是有待提高啊。另外还有一个问题没有解决,我定义不了404notfound信息:(
参考:http://webpy.org 建议参照tutorial和cookbook动手做做, 还是挺有趣的。另外,codeExample还有几个比较简单的例子可以参考,有助于快速建立自己的应用。我的留言板也参考了里面的blog例子。python自带了web server,所以即使你没有安装Apache之类的,还是能直接访问到自己的成果。
http://www.cs.tut.fi/~jkorpela/forms/methods.html The difference between post and get
若遇到attributeError的问题,可以参考上一篇我的上一篇文章 ,主要是web.py 0.3的某些调用方式改变了,而webpy.org的例子还是0.2版本。