欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

Tornado 2.0 发布,Python编写的Web服务器

程序员文章站 2022-03-07 13:52:06
...
Tornado 2.0 发布,Python编写的Web服务器

Tornado 2.0 发布了。

Tornado web server 是使用Python编写出來的一个极轻量级、高可伸缩性和非阻塞IO的Web服务器软件,著名的 Friendfeed 网站就是使用它搭建的。Tornado 跟其他主流的Web服务器框架(主要是Python框架)不同是采用epoll非阻塞IO,响应快速,可处理数千并发连接,特别适用用于实时的Web服务。

该版本的变化:
1. 默认情况下支持转义模板输出,这会导致后续的兼容问题。
2 simple_httpclient已经取代了默认的AsyncHTTPClient implementation.
3. 该版本支持 Python 3.2。
4. 默认情况下该版本将启用模板的autoescaping功能。由Tornado发布升级版本的应用程序既不能禁用autoescaping,也不能适用自定义的模板。对大多数应用程序而言,最简单的方式把autoescape=None 传递到应用程序的函数中。
5.在进程开始阶段,那些希望调用curl_httpclient而非 simple_httpclient来保持程序的持续运行的应用程序现在通过调用AsyncHTTPClient.configure("tornado.curl_httpclient.CurlAsyncHTTPClient")就可以实现这一点。
6. Python 2.5的用户很可能想要调用curl_httpclient,因为simple_httpclient只支持Python 2.6+平台上的ssl.
7. Python 3的兼容性会涉及到很多变化,用户使用升级版时,最好彻底的测试一下应用程序。
8. 模板支持几个新的指令:
   - {%autoescape...%}控制转义行为
   - {% raw ... %}支持转义输出
   - {% module ... %}用于调用UIModules
9. 通过{% module Template(path, **kwargs) %},可以调用具有独立命名空间的模板。
10. 通过add_callback,所有的IOStream回调可以直接运行在IOLoop上。
11. HTTPServer现在支持可用的IPV6.将family=socket.AF_INET传递给HTTPServer.bind(),就可以禁用该功能。
12. 通过覆盖decode_argument()方法,RequestHandlers可以利用编码而非utf-8来查询参数。
13. 该版本大大提高了性能,特别是对于那些大量使用IOLoop timeouts的应用程序。
14. HTTP OPTIONS方法不再需要XSRF令牌。
15. JSON输出可以将Content-Type设置到application/json.
16. 通过覆盖RequestHandler.compute_etag,可以自定义或者禁用Etag computation.
17. 不再支持USE_SIMPLE_HTTPCLIENT环境变量。取而代之的是AsyncHTTPClient.configure.

完整信息:http://www.tornadoweb.org/documentation/releases/v2.0.0.html

下载地址:https://github.com/downloads/facebook/tornado/tornado-2.0.tar.gz