用 Python WSGI 混和并匹配 Web 组件
2010-09-22 11:13:19 来源:WEB开发网<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head>
<title>Virtual Library</title>
</head>
<body>
<p>Moved to <a href="http://vlib.org/">vlib.org</a>.</p>
</body>
</html>
如果运行 清单 2 并在理解 XHTML 的浏览器(比如 Firefox)以及不理解 XHTML 的浏览器(比如 Microsoft Internet Explorer)中观看,您应该能够看到这个中间件的效果。为了在每个浏览器中看到中间件操作对响应媒体类型的影响,要在一行中请求两次。使用 View Source 查看产生的响应体,使用 Page Info 特性查看报告的响应媒体类型。也可以使用命令行 HTTP 工具 cURL:用 curl -H 'Accept: application/xhtml+xml,text/html' http://localhost:8000/ 模拟理解 XHTML 的浏览器,用 curl -H 'Accept: text/html' http://localhost:8000/ 模拟不理解 XHTML 的浏览器,从而测试这个例子。如果想要看响应报头,在每一次调用 cURL 之后使用 -D <filename> 并检查给定的文件名。
结束语
现在您学习了 Python 的 WSGI 以及如何使用它实现可以插入任何 WSGI 服务器和应用程序链的中间件服务。很容易将本文的中间件例子链到进行缓存或者调试的中间件。所有这些都成为组件,因此可以快速地向项目中添加经过反复测试的特性,而不必考虑选择的 WSGI 实现是什么。
WSGI 是一个相当新的规范,但是兼容的服务器、中间件和工具很快出现,使得 Python Web 框架的前景非常光明。下一次您在 Python 中开发重大的 Web 项目时,一定要通过使用现有的 WSGI 组件来采用 WSGI,还可以考虑为自己或者为您的 Web 开发伙伴创建 WSGI 组件。
更多精彩
赞助商链接