首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Flask 1.0发布

David Load 写于 2018-04-26:

很高兴Pallets团队今天发布了Flask 1.0。

Flask框架已经稳定存在了很长时间了,从第一次提交至今已经有8年时间了。经过多年的逐步增长,版本号今天终于累积到了1.0。这是一个特殊的版本号,随之而来的还有我们对框架的诸多改进,这是我们过去一年辛苦工作的成果:

停止支持Python2.6和Python3.3。

CLI更加灵活。FlASK_APP可以指向一个应用工厂,这个指向可以带参数。如果模块的文件名之前使用过,它能识别出更多种书写方式的模块路径。它也会自动监测常用的文件名、应用名、和工厂名称。FLASK_ENV描述应用运行的环境,像development这样。在大多数场景下它会替代FLASK_DEBUG。

如果安装了python-dotenv,那么flask CLI就会从.flaskenv和.env文件加载环境变量,而不用每次都在终端中使用export命令设置。

开发服务器改为默认使用多线程处理请求。

flask.ext被移除掉了。以后需要使用实际的包名导入扩展。

访问request.form中不存在的键,在测试环境下会得到一个更有意义的报错,这会减少开发者很多的困惑。

错误处理函数会先从代码中寻找,然后才是异常类处理。先在全局位置查找,然后才在应用内查找。这样开发者可以更好地配置错误处理函数,并且能够更好地处理HTTPException。

简化了app.logger的行为,让配置更容易。logger总是命名为flask.app,只有在没配置logger的情况下,Flask才会自动配置一个logger,而且Flask永远不会移除已经配置好的logger。

test_client增加了一个参数json,以便于传入json数据。Response对象增加了一个get_json方法,用来在测试中以JSON格式解码数据。

增加了一个test_cli_runner,用来测试应用的CLI功能。

文档做了大量的改进,改善可读性,使文档更易于理解。这个努力还会继续。

入门教程和例子也重写了。重写后采用了一种结构化的格式,以便新手能够更好地避免常见错误,更容易上手。

整个框架还有大量的改进,阅读完整的change log,以便确定自己升级时哪些代码需要改动。

JSON安全性修正

Flask之前使用request中声明的编码来解码JSON内容。虽然从标准上说,JSON应该必须使用UTF-8,但是Flask的实现更加宽容。然而,Python中有一些非文字编码会导致异常的内容使用。

Flask这个版本开始会探测请求数据的编码格式,并以UTF的某个编码格式进行解码。不再允许任意声明的编码格式。

安装或升级

使用pip从PyPI安装:

pip install -U Flask

译者:诗书塞外

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180429A0CIQ400?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券