FastAPI(1)- 简单介绍
前言
为啥要学它呢,因为学 Flask 的时候发现有人更推荐它代替 Flask,看了下介绍,感觉很强,而且也能拿来做平台,当然学起来!卷起来!
为什么要使用 FastAPI ?
- 日渐没落的是后端 HTML 渲染这种方式,比如 Flask + Jinja2
- 前后端分离成为主流
- 异步框架
官方地址
FastAPI 是什么?
- FastAPI是一个现代、快速(高性能)的web框架
- 用于基于标准 Python 类型提示使用 Python 3.6+ 构建API
FastAPI 版本要求
支持 Python 3.6+
FastAPI 优点
直接搬官网
- 类型检查、自动 swagger UI、支持 asyncio、强大的依赖注入系统
- 围绕着框架本身的插件生态,比如 pydantic,sqlalchemy,成熟
- 速度快:非常高的性能,与 NodeJS 和 Go 不相上下,多亏 Starlette 和 Pydantic,FastAPI 是最快的 Python 框架之一;
- 编码快:将开发特性所需的速度提高大约 200% 到 300%;
- 错误少:减少大约 40% 的人为(开发)错误;
- 直观:强大的编辑器支持,支持多场景开发,调试所花的时间更少;
- 简单:被设计为易于使用和学习,减少阅读文档的时间;
- 代码少:最小化重复,更少的错误;
- 健壮:代码可随时部署到生产环境,并自动提供交互文档;
- 标准:基于(并完全兼容) api 的开放标准:OpenAPI (以前称为 Swagger )和 JSON 模式
Pydantic 在 FastAPI
- FastAPI 是完全建立在 Pydantic 的基础之上的
- Pydantic 是一个用来用来执行数据校验的 Python 库,具体教程可看:https://www.cnblogs.com/poloyy/tag/Pydantic/
Type Hints 在 FastAPI
- Type Hints 介绍:https://www.cnblogs.com/poloyy/p/15145380.html
- typing 模块:https://www.cnblogs.com/poloyy/p/15150315.html
使用 FastAPI 时用 Type Hints 声明参数可以获得
- 编辑器支持智能提示,错误检查
- 类型检查,不对会报 warning
FastAPI 还会用类型提示来做
- 定义参数要求:声明对请求路径参数、查询参数、请求头、请求体、依赖等的要求
- 转换数据:将来自请求的数据转换为需要的类型
- 校验数据: 对于每一个请求当数据校验失败时自动生成错误信息返回给客户端
- 使用 OpenAPI 记录 API:然后用于自动生成交互式文档的用户界面,参数会显示对应的类型注释