FastAPI简介
- 提供API的框架
- 小,快,灵
- 我也不会在这里写大段大段的介绍,非常没有意思w
安装
pip install "fastapi[all]"
噢,对了,你最好使用Python 3.10
及以上的版本,这样你就可以使用更多更方便的语法了
第一个API
在main.py
中:
# main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}")
async def read_item(item_id: int):
return {"item_id": item_id}
此时,在命令行中运行:
uvicorn main:app --reload
# 参数解释:
# main: main.py
# app: app = FastAPI()
# --reload: 服务器会在更新代码后重新启动,方便调试
就能开启服务了。此时,访问127.0.0.1:8000/docs
即可看到API文档
发生了什么?
@app.get
使用的@
代表这行是一个Decorator。关于Decorator,你可以查看Python 函数装饰器 | 菜鸟教程。简单来说,这是一个接受一个函数、返回一个函数的函数- 当然,你还可以用
@app.post
,@app.delete
什么的 /items/{item_id}
是这个API对应的URL。这里{item_id}
使用花括号扩着,代表你可以在下面的函数内用同名参数获得这个值。当然,这种参数在你的URL里不是必须的async def
代表这个函数是一个异步函数,你可以查看Python 异步编程入门 – 阮一峰的网络日志read_item
是处理这个API请求的函数,他的参数会自动从URL中获取,或是自动转成Query或Body中的参数- 在经过处理后,你可以返回一个字典(其实就是json)作为返回信息。你也可以返回一个Pydantic模型或是一个SQLModel模型(后者是前者的子类)
接下来呢?
我觉得现在知道这些够了,足够让你面对FastAPI应用代码时不用晕头转向
其实我建议你在需要用到相应指示的时候直接查询FastAPI官方文档,而非一开始就全部学完