使用 Twisted 框架进行网络编程,第 3 部分
2008-11-13 13:13:08 来源:WEB开发网该 Resource 中主要的新东西是对 request.args 属性的访问。一般来说,该属性类似于 cgi 模块中的 FieldStorage 类——它收集与页面请求一起传递的任何信息,既包括 GET 数据,也包括 PUT 数据。Twisted的请求数据是所传递值的词典;在我们的例子中,我们只关心传递进来了哪些复选框的字段,以及未传递进哪些字段。如果我们想要检查保存在 request.args 中的一些值,则将遵循相同的模式。例如,您可能基于字段值将选项添加到过滤器(并选择该过滤器带有一个文本项或者一个 HTML 列表框)。
利用 Woven 进行模板化
我们到目前为止所介绍的动态页面在概念上都类似于 CGI 方法。Twisted 异步服务器比较快——它尤其节省时间,从而避免了为每个脚本请求打开一个新进程所带来的开销。但是 fastcgi 或 mod_python 获得一个类似的加速。Twisted 在这一方面没有什么特殊的。
将 Web 应用开发上升到一个较高水平的方法之一就是使用 Woven。从概念上讲,Woven 有些类似于 PHP、ASP (Active Server Pages)或 JSP (JavaServer Pages)。也就是说,Woven XHTML 页面不仅仅是向浏览器传递页面,而且传递以编程方式填充的页面的模板或骨架。但是,对于代码和 HTML 之间的分离,利用 Woven 比利用这些页面嵌入技术要稍微复杂一些。您不是将 Python 代码直接写入到 Woven 模板中,而是在一些普通的标记上定义一系列的自定义 XHTML 属性,从而使外部代码增强并处理页面,然后再向浏览器客户端传递页面。
model 属性确定将用于扩展 XHTML 元素的数据。思路是,Model 表示应用程序的“业务逻辑”,即页面的数据内容是如何确定的。而 view 属性则确定所生成数据的特定表示。在 Woven 中还有 Controller 的概念,它是将节点(也就是 XHTML 元素)的 Model 和 View组合在一起的代码。这一最后部分通常由一个 Page 对象来处理,该对象是一个可以被特殊化的类。
更多精彩
赞助商链接