WEB开发网
开发学院软件开发Python 用 Python WSGI 混和并匹配 Web 组件 阅读

用 Python WSGI 混和并匹配 Web 组件

 2010-09-22 11:13:19 来源:WEB开发网   
核心提示: 中间的代码WSGI 中间件对于可重用组件是最自然的层,WSGI 中间件看上去对于应用程序是较低层,用 Python WSGI 混和并匹配 Web 组件(3),而对于服务器是较高层,为了添加一些特殊的特性,仔细查看 清单 1 并试着把它与前面描述的 WSGI 中间件过程相结合,我提供了足够的

中间的代码

WSGI 中间件对于可重用组件是最自然的层。WSGI 中间件看上去对于应用程序是较低层,而对于服务器是较高层。为了添加一些特殊的特性,它监视请求、响应和 WSGI 环境的状态。遗憾的是,WSGI 规范提供了非常差的中间件例子,而且可以找到的大多数其他例子也很简单,只能提供如何快速编写中间件的感性认识。我将使用以下概述给出对 WSGI 中间件承担的过程的感性认识。这里忽略了大多数 WSGI 中间件作者都不必担心的问题。在 Python 中,我使用单词函数,意思是任何可调用的对象。

设置阶段。每当 Web 服务器启动时,设置阶段就发生了。它接受一个中间件实例,其中包括应用程序函数。

处理客户机请求。每当 Web 服务器收到请求时,就会处理客户机请求。

服务器用这个环境和 server.start_response 参数调用中间件函数。

中间件处理这个环境并调用可调用的应用程序,传递这个环境和包装的函数 middleware.start_response。

应用程序执行;首先它准备响应报头,然后调用 middleware.start_response。

中间件处理响应报头并调用 server.start_response。

服务器将控制传递回中间件,然后回到开始产生响应体块(比如字符串)的应用程序。

对于每一个响应,体块中间件做出任何修改并向服务器传递一些相应的字符串。

一旦处理完应用程序的所有块,中间件就向服务器返回控制,完成当前的请求。

处理 XHTML 的大胆步骤

许多组件技术相当复杂,所以作为指导的例子最好是简单的东西。这不是使用 WSGI 的案例,事实上,我将要介绍一个非常实际的例子。许多开发者更喜欢使用 XHTML Web 页面,因为 XML 技术比 “标记汤” 的 HTML 更容易管理,而且 Web 站点倾向于更容易由机器读取。问题是并非所有的 Web 浏览器都能正确地支持 XHTML。清单 1(safexhtml.py)是一个 WSGI 中间件模块,它检查到来的请求,看浏览器是否支持 XHTML;如果不支持,就将任何 XHTML 响应翻译成普通的 HTML。可以使用这样的模块让所有主要应用程序代码产生 XHTML,而中间件负责任何需要翻译成 HTML 的地方。仔细查看 清单 1 并试着把它与前面描述的 WSGI 中间件过程相结合。我提供了足够的注释,您可以识别出代码的不同阶段。

上一页  1 2 3 4 5 6 7  下一页

Tags:Python WSGI 匹配

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接