在经过了漫长的沉寂之后,Pocoo团队于6月13日发布了Flask和Werkzeug的最新版本,这次更新最大的变化是提供Python 3(3.3以及更高版本)的支持。
\由于Werkzeug之前版本的实现没有满足PEP 3333的文档描述,所以他们不得不打破部分向后兼容的特性。Armin提醒开发者,如果项目代码中使用了werkzeug.urls模块、Headers和EnvironHeaders数据结构,需要在更新之前及时作出修复。
\这次升级值得注意的变化是:
\\\Werkzeug:
\
- HTTP异常类有了小的调整,可以携带有效载荷并在流中挂起异常,增加了可用性;\
- URL模块增加了一系列对于IRI的支持;\
- 增加了一系列方法桥接PEP 333与PEP 3333、Python 2.x和3.x下WSGI的差异;\
- 内部表单解析升级,可以在任何情况下获取流数据;\
- 引入
get_data
方法为今后替换requests和response中的.data描述符做准备。\Flask:
\
- 增加了
json
模块以统一Python 2.x和3.x的环境下JSON的支持,并且提供了一系列扩展;\- 可以仅在application context中渲染模版,flask.g也绑定到application context中;这些变化虽然微小,但是可以简化Web环境外与Flask的交互,例如可以更加简单的维护没有绑定到HTTP请求生命周期上的数据库链接。\
- Flask的内部错误处理得到改进;\
- 在请求中引入
get_json
函数适配Werkzeug的get_data函数;\- 为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下项目的迁移,还需要阅读这个文档。