FastAPI最近比较火,自从看到这款框架后就一直在关注着。据官方文档上的介绍它是一个并发性可以和 NodeJS 以及 Go 相媲美的 web 框架,具有强大的性能
本人最近也是一直在使用和学习 FastApi,相比之前用的框架性能确实有很大的提升,用完后有如下几点感受:
性能并发更强了,支持异步 async
基于 Pydantic 的类型声明,自动校验参数
自动生成交互式的 API 接口文档
上手简单,能快速编码
上手快是真的,上班期间零零散散的看了两天文档,就将现有的一个服务改成 FastApi 服务了,配合 gunicorn+uvicorn 部署,最近测试也没出现什么问题。
由于之前 Flask 用的比较多,在 FastAPI 上隐隐约约能看到 Flask 的影子,两者的设计范式很类似。
例如:更大的应用程序服务多文件多 url 处理功能,在 Flask 中称之为蓝图的,对应 FastApI 中的 APIRouter
使用 APIRouter
上面说过和 Flask 非常的类似,比如创建一个简单的 FastAPI 服务
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def index():
return "Hello world"
@app.get("/items/{item_id}")
async def read_item(item_id: str, q: str = No