python读取fasta序列_开发语言


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

python读取fasta序列_python读取fasta序列_02

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

python读取fasta序列_python_03

这个框架有什么高级特性让他在这么短时间内可以追赶 django 和 flask 呢?
FastAPI 的使用方法和设计参考了几十个 python 明星项目,博采众长,吸收各家精华;

FastAPI 和 Flask 一样简约

FastAPI 非常新,并且基于 python3.6 的类型声明系统。

自动生成文档

类型声明和数据检验

内置身份认证

性能强

原生支持异步

强大的依赖注入系统

GraphQL 和 WebSocket 支持

自动文档

FastAPI 内置 2 种文档:swaggerui 和 Redoc, 当你编写好接口以后,可以直接查看文档,甚至可以进行简单的测试。这些都是由 FastAPI 自动打包的。允许您将更多精力放在代码上,而不是设置工具。

python读取fasta序列_flask_04

类型申明

一直以来,python 的类型传递都是被诟病的,在 python3.6 以后,类型声明已经比较完善,而 Pydantic 这个库基于 python 的标准语法进行类型检查。FastAPI 集成了 pydantic 这个优秀的库进行数据检验, 让你用更少的代码方便的进行数据检验。

而且加了类型声明以后,你能更方便的在 pycharm 这样的工具当中得到代码智能提示,这点比 Flask 好太多了。

python读取fasta序列_flask_05

数据检验

由于集成了 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)查询到最新的性能表现对弈。

python读取fasta序列_开发语言_06

天生支持异步

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

python读取fasta序列_python_07

强大的依赖注册系统(Dependcy Injection)

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

python读取fasta序列_测试工程师_08

GraphQL和WebSocket支持

GraphQL 在使用复杂的数据模型时比 REST 有用多了。当前端的微小变化需要后端的查询数据时表象非常亮眼。Flask 和 Django 可以安装插件处理,在 FastAPI 中,这是经过集成的。FastAPI 同样支持 WebSocket。

总结

FastAPI 是你在进行 python Web 开发的时候不容错过的一个框架。以前的 Web 框架设计之初都是开发网站的,所以通常带有 HTML 模板渲染,而 FastAPI 专心给你提供 API, 如果你想让他返回 HTML, 也可以轻松引入模板引擎。