使用 Twisted 框架进行网络编程,第 2 部分
2008-11-13 13:14:25 来源:WEB开发网在 本系列文章的第 1 部分中,我们研究了 Twisted 的低级方面,比如定义定制协议。从很大程度上讲,Twisted 的这些低级方面是最容易掌握的。尽管异步的非阻塞样式对于习惯了线程技术的开发人员而言多少有点新奇,但是新协议能够符合 Twisted Matrix 文档中的示例。较高级的 Web 开发工具发展得越来越快,因而要了解更多的 API 细节。事实上,虽然 Twisted 的 Web 模板制作框架 woven已经很成熟,但它还不够稳定,因此我在此只简略提及。
Twisted 库的名称要说明一下。“Twisted Matrix Laboratories”是位于地球上各个角落的一组不同的开发人员对其自身的称呼,会有一定的变化。用于事件驱动的网络编程的 Python 库就称为“Twisted”- 我的最后一篇专栏文章并没有仔细区分这个组和产品。
增强 Weblog 服务器的功能
我们之前研究过价值甚微的服务器,它使用定制协议以及定制服务器和客户机来远程监控网站的访问率。对于本文,让我们用基于 Web 的接口来增强该功能。在我们的方案中可以使用某个 URL 来监控网站所接收的访问量。
对于基于 Web 的 Weblog 服务器,有一种非常简单的方法,它与 Twisted 在本质上毫不相干。假定您只让像 Weblog.html 这样的 Web 页面列出有关对网站的最近几次访问的信息。与前面的示例保持一致的同时,我们将显示访问的提交者和资源,但是只有在请求的状态码为 200 (并且提交者可用)时才如此。在我的网站(请参阅 参考资料以获取链接)上可以找到此类页面(其内容没有更新)的示例。
我们需要做两件事:(1) 将 <meta http-equiv=refresh ...> 标记放在 HTML 头中,使显示保持最新;(2) 一旦发生新的访问就间歇地重写 Weblog.html 文件本身。第二个任务只需要一个一直运行的后台进程,例如:
赞助商链接