Pocoo发布Flask 0.10 和Werkzeug新版本

在经过了漫长的沉寂之后,Pocoo团队于6月13日发布了Flask和Werkzeug的最新版本,这次更新最大的变化是提供Python 3(3.3以及更高版本)的支持。

由于Werkzeug之前版本的实现没有满足PEP 3333的文档描述,所以他们不得不打破部分向后兼容的特性。Armin提醒开发者,如果项目代码中使用了werkzeug.urls模块、Headers和EnvironHeaders数据结构,需要在更新之前及时作出修复。

这次升级值得注意的变化是:

Werkzeug:

  1. HTTP异常类有了小的调整,可以携带有效载荷并在流中挂起异常,增加了可用性;
  2. URL模块增加了一系列对于IRI的支持;
  3. 增加了一系列方法桥接PEP 333与PEP 3333、Python 2.x和3.x下WSGI的差异;
  4. 内部表单解析升级,可以在任何情况下获取流数据;
  5. 引入get_data方法为今后替换requests和response中的.data描述符做准备。

Flask:

  1. 增加了json模块以统一Python 2.x和3.x的环境下JSON的支持,并且提供了一系列扩展;
  2. 可以仅在application context中渲染模版,flask.g也绑定到application context中;这些变化虽然微小,但是可以简化Web环境外与Flask的交互,例如可以更加简单的维护没有绑定到HTTP请求生命周期上的数据库链接。
  3. Flask的内部错误处理得到改进;
  4. 在请求中引入get_json函数适配Werkzeug的get_data函数;
  5. 为JSON的序列化增加配置项;

对于这次更新,YCombinator上围绕“Flask的可用性”、“代码质量”和“现有代码向Python 3迁移”等进行了讨论:

Flask的代码质量:

bjourne:Flask是用Python写的最漂亮的代码。查看一下别的Python框架,它们也许有几十个API,但是内部实现是一团乱麻。读Flask的代码是一种享受。……任何想提高自己技艺的Python程序员都需要学习Flask。

Flask的可用性:

Timothee:Twillio使用它支撑他们的API,Flask-RESTful就是他们为了满足这个需求而开发的。

dkh:Disqus在使用它;

代码迁移:

有人问道:我们想把PHP的网店转移到Python上,既然现在Flask支持3.x了,现在是否可以立即迁移到3.x的环境? 对此,corford回答道:“ 问题的关键在于Flask的扩展和文档,而不是Flask本身。如果你的应用大部分代码都是自己写的,那么迁移到Python 3是没有问题的,但是如果你大量使用了别人的扩展,就需要等到他们移植到3.x环境。”

Armin表示,以后将会更加频繁的更新,而不是像这次这样好久才推出一个新的版本。如果要升级Flask框架,可以参考升级文档,对于Python 3.x下项目的迁移,还需要阅读这个文档。

你可能感兴趣的:(Pocoo发布Flask 0.10 和Werkzeug新版本)