
如果你之前有接触 python 测试开发,那你应该会听过 django 或者 flask。 但是最近一个新的框架出现在人们的视野中,短短 1 年在 GitHub 上就收集了 20000+ star, 成为一个不折不扣的明星项目。

这个项目是由塞巴斯蒂安·拉米雷斯(Sebastian Ram írez)创建的,他在实现一个机器学习项目的时候创建了这个框架,并且优化至今。拉米雷斯留着达利那样的胡子,看起来像一个艺术家。

这个框架有什么高级特性让他在这么短时间内可以追赶 django 和 flask 呢?
FastAPI 的使用方法和设计参考了几十个 python 明星项目,博采众长,吸收各家精华;
FastAPI 和 Flask 一样简约
FastAPI 非常新,并且基于 python3.6 的类型声明系统。
自动生成文档
类型声明和数据检验
内置身份认证
性能强
原生支持异步
强大的依赖注入系统
GraphQL 和 WebSocket 支持
自动文档
FastAPI 内置 2 种文档:swaggerui 和 Redoc, 当你编写好接口以后,可以直接查看文档,甚至可以进行简单的测试。这些都是由 FastAPI 自动打包的。允许您将更多精力放在代码上,而不是设置工具。

类型申明
一直以来,python 的类型传递都是被诟病的,在 python3.6 以后,类型声明已经比较完善,而 Pydantic 这个库基于 python 的标准语法进行类型检查。FastAPI 集成了 pydantic 这个优秀的库进行数据检验, 让你用更少的代码方便的进行数据检验。
而且加了类型声明以后,你能更方便的在 pycharm 这样的工具当中得到代码智能提示,这点比 Flask 好太多了。

数据检验
由于集成了 Pydantic。您可以验证任意的 python 标准类型,也可以验证其他的数据,比如:
JSON 对象(dict)
JSON 数组(list)
具有最小和最大长度的字符串(str)
带最小值和最大值的 float
统一资源定位地址(URI)
电子邮件(Email)
UUID
身份认证
这是任何 API 的关键部分,现代社会几乎任何的产品和服务都需要你登录。FastAPI 把标准的身份认证集成到了框架内部。它提供
HTTP Basic
OAuth2 (JWT tokens)
放在 header, 查询字符串或者 cookie 中的 key
性能
这恐怕是 FastAPI 最值得炫耀的地方。它太快了!不仅编码速度快,而且处理请求的速度也非常快!你可以在 techempower (链接地址:http://r6d.cn/5yLj)查询到最新的性能表现对弈。

天生支持异步
使用 FastAPI 你可以写同步代码,但是如果你需要一些异步操作,你可以非常轻松的完成切换。最简单的,你可以直接在函数前面加一个 async, 这个在 Flask 当中是不能做的, 在 django 中也并不容易。

强大的依赖注册系统(Dependcy Injection)
FastAPI 的依赖注入非常炫酷,他允许你通过非常简单的方式去解决一些依赖问题,不需要多余的配置。比如如果你想在处理请求时操作数据库,你可以把数据库操作注入:

GraphQL和WebSocket支持
GraphQL 在使用复杂的数据模型时比 REST 有用多了。当前端的微小变化需要后端的查询数据时表象非常亮眼。Flask 和 Django 可以安装插件处理,在 FastAPI 中,这是经过集成的。FastAPI 同样支持 WebSocket。
总结
FastAPI 是你在进行 python Web 开发的时候不容错过的一个框架。以前的 Web 框架设计之初都是开发网站的,所以通常带有 HTML 模板渲染,而 FastAPI 专心给你提供 API, 如果你想让他返回 HTML, 也可以轻松引入模板引擎。
下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:伤心的辣条 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
学习不要孤军奋战,最好是能抱团取暖,相互成就一起成长,群众效应的效果是非常强大的,大家一起学习,一起打卡,会更有学习动力,也更能坚持下去。你可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)
喜欢软件测试的小伙伴们,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
好文推荐
转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!


被折叠的 条评论
为什么被折叠?



