在年初的Facebook是用PHP和MySQL构建,但随着交通和网络的规模增长,所以没有它的要求,更好,更快地交付的实时内容。
这导致Facebook的团队深入到其他技术和语言PHP外,该公司很快把它景点到Python,使用谷歌建立自己的搜索引擎的编程语言。
团队的努力的结果到一个名为旋风,专门设计与原始的HTTP连接的一个简单的异步非阻塞的工作方式一个Python框架产品。
龙卷风是由其他工具,如 Web.py 和谷歌的Web应用的启发,还包括额外的功能,以及。
目前整个框架的中心位于一个强大的HTTP服务器,这是由一组模块的增强处理I18N内容,字符串处理,输出生成,异步操作,第三方代码,日志等。
除了卡桑德拉,龙卷风是Facebook的最成功的开源应用程序更新之一。
是什么在此版本中是新的
- 在新的模块:tornado.locks和tornado.queues
什么的4.2版本是新的:
- 在新的模块:tornado.locks和tornado.queues
什么是4.1版中新的:
- 在该tornado.web.stream_request_body装饰可以让大文件是上传有限的内存使用情况。
- 协程,现在速度更快,在整个龙卷风本身广泛使用。更多的方法现在回到期货,包括大多数的iostream方法和RequestHandler.flush。
- 许多用户覆盖方法现在允许返回一个未来的流量控制。
- 在HTTP相关的代码现在的tornado.httpserver,tornado.simple_httpclient和tornado.wsgi模块之间共享,使得对等功能分块和gzip编码的更多的一贯支持。 HTTPServer定位现在使用的tornado.httputil除了它的老单的回调接口中定义新的委托接口。
- 新模块tornado.tcpclient创建具有无阻塞DNS,SSL握手,并支持IPv6的TCP连接。
什么3.2.2版本新:
- 在该XSRF令牌现已编入一个随机掩码对每个请求。这使得它可以安全地在压缩的页面包括而不容易受到攻击的违约。这适用于同时使用xsrf_cookies和gzip选项(或者具有由一个代理施加的gzip)大多数应用。
- 如果龙卷风3.2.2运行的同时作为相同域的旧版本,有一些潜在的用于与不同的版本cookie的问题。该应用程序设置xsrf_cookie_version = 1,可用于一个过渡期,以生成新服务器旧cookie格式。
- tornado.platform.asyncio现已与金莲花0.3版兼容。
什么是在3.2.1版本新:
- 在使用RequestHandler.set_secure_cookie签署的值格式和RequestHandler.get_secure_cookie已更改为更加安全。这是一个颠覆性的变化。该secure_cookie功能需要新版本的参数支持cookie的格式之间的转换。
- 新的cookie格式修复可能存在于使用多个Cookie,其中一个cookie的名称是另一个名称的前缀应用程序中的漏洞。
- 要尽量减少干扰,在较旧的格式的cookie会被默认接受,直到过期。应用程序可能会受到可通过传递min_version = 2 RequestHandler.get_secure_cookie拒绝旧格式的所有Cookie。
什么的3.2版本是新的:
- 在新的应用程序设置default_handler_class可以用来轻松设置自定义404页。
- 在新的应用程序设置自动重载,compiled_template_cache,static_hash_cache和serve_traceback可以用来控制调试模式个别方面。
- 新方法RequestHandler.get_query_argument和RequestHandler.get_body_argument和新属性HTTPRequest.query_arguments和HTTPRequest.body_arguments允许在不交织那些与请求主体的查询字符串获得参数。
- RequestHandler.decode_argument和相关的方法,现在提高,而不是的UnicodeDecodeError一个HTTPError这样的(400)时的说法不能被解码。
- RequestHandler.clear_all_cookies现在接受域和路径参数,就像clear_cookie。
- 现在可以通过名称使用URLSpec类时指定的处理程序。
- 应用程序现在可以接受4元组指定名称参数(以前需要构建一个URLSpec对象,而不是一个元组)。
- 修正了一个不正确的错误消息时,处理方法返回一个值比没有或未来其他的。
- 异常将不再同时使用@Asynchronous和@ gen.coroutine当记录两次。
什么是3.1版本的新:
- 在许多参考周期已遍布包打散,使对CPython的更高效的垃圾回收。
- 静音一些日志消息时,打开连接并立即关闭(即端口扫描),或与已关闭的连接其他情形。
- 在各种小的加速:HTTPHeaders情况正常化,UIModule代理对象,一些预编译正则表达式 。
什么是3.0.2版本,新的:
- 在tornado.auth.TwitterMixin现在默认为1.1版本Twitter的API,而不是1.0版本,这是被中断了6月11日,当谈论微博它还现在使用HTTPS。
- 修正了一个长gen.coroutine或gen.engine函数链中的一个潜在的内存泄漏。
什么版本3.0是新的:
- 在该``callback``参数许多异步方法是现在可选的,这些方法返回一个`.Future`。在`tornado.gen`模块现在理解``Futures``,并且这些方法可直接使用未经`.gen.Task`包装。
- 新功能`.IOLoop.current`返回`.IOLoop`是在当前线程上运行(而不是'.IOLoop.instance`,它返回一个特定的线程(通常是主线程)IOLoop。
- 新类`tornado.netutil.Resolver`提供了一个异步接口,DNS解析。
- 新类`tornado.process.Subprocess`包装`subprocess.Popen`与`.PipeIOStream`进入孩子的文件描述符。
- `.IOLoop`现在有一个静态的configure< .Configurable.configure>`像一个上`.AsyncHTTPClient`方法,它可以用来选择一个`.IOLoop`执行比其他默认。 *`.IOLoop`现在可以选择使用一个单调时钟(如果可用)。
什么在2.4.1版本新:
- 在tornado.stack_context修正了内存泄漏,这是特别是有可能与长时间运行@ gen.engine功能。
- tornado.auth.TwitterMixin现在工作了Python 3。
- 修正了一个错误,其中IOStream.read_until_close与流回调有时会传递数据的最后一个块到最后的回调,而不是流回调。
什么2.4版本是新的:
- 在固定的Python 3虫子tornado.auth,tornado.locale和tornado.wsgi。
- OAuthMixin现在接受" OOB"作为callback_uri。
- OpenIDMixin现在也返回claimed_id领域的用户。
- tornado.platform.twisted关机顺序现在更加兼容。
- 在tornado.options使用的日志记录配置是比较容忍的非ASCII字节字符串。
什么2.3版本是新的:
- 在`tornado.httpclient.HTTPClient`现在支持相同的构造关键字参数作为`AsyncHTTPClient`。
- 的``max_clients``关键字参数`AsyncHTTPClient.configure`现在的作品。
- `tornado.simple_httpclient`现在支持``OPTIONS``和``PATCH`` HTTP方法。
- `tornado.simple_httpclient`最好在关闭让他们在垃圾回收的插槽来代替。
- `tornado.simple_httpclient`正确验证SSL证书包含IPv6的文字(此bug影响的Python 2.5和2.6)的URL。
- `tornado.simple_httpclient`不再包括当这些凭证从URL中提取的``Host``头基本身份验证凭据。
- `tornado.simple_httpclient`不再修改调用者提供的首部字典,它下面的重定向时引起的问题。
- `tornado.curl_httpclient`现在支持客户端SSL证书(使用相同的``client_cert``和``client_key``参数作为`tornado.simple_httpclient`。
什么在2.2.1版本新:
- 安全修补程序:
- `tornado.web.RequestHandler.set_header`现在可以正确地进行消毒的输入值,以防止头注入,响应拆分等(它一直试图做到这一点,但这种检查是不正确的)。需要注意的是重定向,这种错误最可能的来源,在`RequestHandler.redirect`一个单独检查的保护。
- 错误修正:
- 在`tornado.options`有色日志记录配置与Python 3.2.3(3.3)兼容。
什么2.2版本是新的:
- 在更新和扩充的WebSocket支持
- 在扭曲/龙卷风桥改善的相容性。
- 在模板的错误,现在产生更好的堆栈跟踪。
- 在更好的异常处理`tornado.gen`。
什么在2.1.1版本新:
- 在错误修正:
- 修正了``epoll``(如Linux)的``IOLoop``关闭的连接的处理。此前,关闭连接可能被关闭太早,其中最常见表现为"流关闭"在``SimpleAsyncHTTPClient``。 异常
- 修正了一个情况,即分块的反应可能过早闭合,导致截断输出。
- ``IOStream.connect``现在可以通过登录和关闭回调(这会影响如连接到本地主机上的FreeBSD)更一致报告的错误。
- ``IOStream.read_bytes``再同时接受``int``和``long``参数。
- ``PeriodicCallback``不再重复运行的时候``IOLoop``迭代完成快于``time.time()``(主要是在Windows上的问题)的解决方案。
什么是2.1.0版本,新的:
- 在Diginotar已经从默认的CA证书文件中删除使用`SimpleAsyncHTTPClient`
- 要方便一些先进的多进程的情况下,``HTTPServer``有一个新的方法``add_sockets``,和插座开放代码分开可以作为`tornado.netutil.bind_sockets`。
- 支持写预1.0版本龙卷风的安全cookie已被删除。
- 在Windows的支持得到了改善。
什么在2.0.0版本新:
- 主要变化:
- 在模板输出自动默认情况下逃脱了。
- 默认AsyncHTTPClient实现现在simple_httpclient。
- 在Python的3.2现在支持。
- 向后兼容性:
- 在模板autoescaping默认情况下启用。从以前版本龙卷风的应用程序升级必须先禁用autoescaping或调整他们的模板与它合作。对于大多数应用来说,要做到这一点最简单的方法是通过autoescape =无到应用程序的构造函数。
- 的应用程序希望继续使用curl_httpclient代替simple_httpclient可致电AsyncHTTPClient.configure这样做(" tornado.curl_httpclient.CurlAsyncHTTPClient&QUOT)在过程的开始。的Python 2.5的用户可能会想用curl_httpclient作为simple_httpclient只支持SSL上的Python 2.6 +。
- 在Python 3中的相容性参与整个代码库很多变化,所以用户升级到这个版本时鼓励比平时更彻底地测试他们的应用程序。
- 在4.1版本的其他变化:
- 模板支持一些新的指令: - {%autoescape ...%}控制逃逸行为 - {%原...%}为转义输出 - {%模块...%}调用UIModules * {%模块模板(路径,** kwargs)%}现在可以用来调用另一模板与一个独立的命名空间。
- 所有的iostream回调,现在通过add_callback在IOLoop直接运行。
- HTTPServer定位现在支持IPv6(如有)。要禁用,通过家庭= socket.AF_INET到HTTPServer.bind()。
- 现在的HTTPClient支持IPv6,通过allow_ipv6 =布尔上的HTTPRequest配置。 allow_ipv6默认为false simple_httpclient和真实的curl_httpclient。
- RequestHandlers可以通过覆盖decode_argument使用的编码除UTF-8的查询参数()。
- 在性能的提升,特别是对于那些使用大量IOLoop的超时的应用程序。
- 在HTTP OPTIONS方法不再需要XSRF令牌。
- 在JSON输出(RequestHandler.write(字典))现在设置内容类型为application / JSON。
- Etag的计算,现在可以通过覆盖RequestHandler.compute_etag自定义或禁用。
- USE_SIMPLE_HTTPCLIENT环境变量不再支持。使用AsyncHTTPClient.configure代替。
什么是1.2.1版新:
- 在此版本只包含两个相对的版本变化小1.2:
- FacebookGraphMixin已经更新了最近的改变Facebook的API来工作。
- 在跑步与QUOT; setup.py的安装"将不再尝试自动安装pycurl。这是不尽如人意平台上的安装位置pycurl最好的方式是通过类似apt-get的代替easy_install的。这是一个重要的升级,如果你使用的是FacebookGraphMixin,但除此之外,它可以安全地忽略。
什么是1.2.0版本,新的:
- 在此版本包括从向后兼容的安全性变化1.1.1版本。
- 要使用这个新的实现透明地更换tornado.httpclient.AsyncHTTPClient,您可以设置环境变量USE_SIMPLE_HTTPCLIENT = 1
- 在请求记录现在由应用程序而不是RequestHandler的实现。日志行为可以通过在子类中重写两种或Application.log_request传递log_function作为一个应用程序的设置来定制。
什么是1.1.1版新:
- 在龙卷风1.1.1是向后兼容的安全更新,修复了XSRF漏洞。
什么的1.1版本是新的:
- 更改:
- RequestHandler.async_callback和相关的功能都无需在大多数情况下(长虽然它是无害的继续
- 在使用它们)。未捕获的异常现在将导致请求,即使在一个回调封闭。如果你很好奇是如何工作的,看到新的tornado.stack_context模块。
- 在新tornado.testing模块包含了单元测试异步IOLoop为基础的代码的支持。
- AsyncHTTPClient被重写(新的实现是可以作为AsyncHTTPClient2在旋风1.0,这两个名字都支持向后
- 的兼容性)。
- 的tornado.auth模块已经有了一些更新,其中包括的OAuth 2.0和Facebook的图形API,升级Twitter和谷歌支持的OAuth 1.0a的支持。
- WebSocket的模块是背部和支持WebSocket协议的最新版本(76)。请注意,这个模块的接口是从出现在1.0之前的版本龙卷风的WebSocket的模块不同。
- 新方法RequestHandler.initialize()可以在子类中,从URLSpecs简化操作参数覆盖。方法初始化期间调用的顺序被记录在http://tornadoweb.org/documentation#overriding-requesthandler-methods
- get_argument()和相关方法现在的工作对除POST PUT请求。
- 在HttpClient的模块现在支持HTTP代理服务器。
- 在当前HTTPServer定位运行在SSL模式下,SSL握手现在是非阻塞的。
- 在许多小bug修复和文档更新
- 向后兼容性注意事项:
- 当龙卷风大多数用户不应该直接处理stack_context模块,辅助线程池和类似结构的用户可能需要使用stack_context.wrap和/或NullContext以避免内存泄漏。
- 在新AsyncHTTPClient仍然libcurl的版本7.16.x作品,但它执行得更好时,双方的libcurl和pycurl至少版本7.18.2。
- 在OAuth的交易不能在新的模块下完成。这仅适用于初始的授权过程;一旦授权令牌发出的令牌可以与任一版本。
在其他类
在验证模块的早期版本开始
要求:
- 在Python的2.6或更高版本
评论没有发现