安装需要的依赖
pip install fastapi uvicorn
FastAPI中一个接口服务的组成
资源地址 + 视图

注册路由的几种方式
from fastapi import FastAPI, routing
from uvicorn import run
def enp():
return "123"
# https://www.starlette.io/ 方式
# 请求url:http://127.0.0.1:8000/emp
routes = [routing.APIRoute(path="/emp", endpoint=enp)]
"""
redoc_url = None禁用 /redoc 文档
docs_url = None 禁用 /docs 文档
"""
app = FastAPI(title="请求方法", description="fastapi-请求方法",
# docs_url
routes=routes)
# https://www.starlette.io/ 方式
app.add_api_route("/enp", endpoint=enp, description="miaosu", tags=["分类"], summary="名称")
# 装饰器的方式
@app.api_route("/index", methods=["GET", "POST", "DELETE"], name="奥利给")
def index():
return "index"
@app.get("/get")
async def get():
return "get"
@app.post("/post")
async def post():
return "post"
@app.put("/put")
async def put():
return "put"
@app.delete("/delete")
async def delete():
return "delete"
# 子路由
from fastapi import APIRouter
async def sub_close():
print("sub子路有关闭事件")
# 部分参数 和 FastAPI()一直 prefix 路由前缀、后面的路由地址为 前缀 + path
router = APIRouter(prefix="/sub", on_startup=[lambda: print("sub子路有启动事件")
], on_shutdown=[sub_close])
# url -> host:port/sub/hello
@router.get(path="/hello", summary="子路有首页")
async def hell():
return "sub/hello"
app.include_router(router, tags=["子路有"])
if __name__ == '__main__':
# 启用web服务, reload -> 当改变代码时自动重启 # fastapi_02:app
run("__main__:app", reload=True)