Flask 1.0发布

Posted Python程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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


译者:诗书塞外

英文原文:https://www.palletsprojects.com/blog/flask-1-0-released/

以上是关于Flask 1.0发布的主要内容,如果未能解决你的问题,请参考以下文章

时隔 8 年,Flask 1.0 终于发布,放弃支持 Py 2.6 和 3.3

Flask 1.0 Released

Flask - g变量

Hello,Flask

“内置服务器”如何与 Flask Web 应用程序一起使用?

Flask框架篇(全)