fastapi文档 - 教程

1、获得post所有请求参数
dade: Dict[str, Any]

@app.post("/dade")
async def dade(dade: Dict[str, Any]):
return {"dade": dade}

2、获得get,post所以参数

from fastapi import FastAPI,Request```
@app.post("/dade")
async def dade(dade: Dict[str, Any], request: Request):
//获得get
query_params = dict(request.query_params)
return {"dade": dade,"dddd0":query_params}

获得post参数第二种方法

第一种
dade: Dict[str, Any],
第二种
@app.post("/dade")
async def dade(request: Request):
# 获得get参数
query_params = dict(request.query_params)
# 获取 JSON 格式的 POST 数据
json_data = await request.json()
return {"dade": json_data,"dddd0":query_params}

3、静态文件目录配置

app.mount("/static", StaticFiles(directory="static"), name="static")

4、热更新,更新代码自动重启

uvicorn main:app --reload

5、路由
分级路由

from fastapi import APIRouter
# 创建了分路由
user = APIRouter(prefix="/user", tags=["主项目,顶级,前缀api"])
@user.get("/index")
def index():
return {"message": "Hello World"}

main.py加

from typing import Dict, Any
from fastapi import FastAPI,Request
from starlette.staticfiles import StaticFiles
app = FastAPI()
app.mount("/static", StaticFiles(directory="static"), name="static")
@app.get("/")
async def root():
return {"message": "Hell22o World"}
@app.get("/hello/{name}")
async def say_hello(name: str):
return {"message": f"Hello {name}"}
@app.post("/dade",tags=["给接口分组标签"],summary='测试接口,接口介绍',description='接口的描述',response_description='响应数据的详细描述')
async def dade(request: Request):
json_data = await request.json()
return {"dade": json_data}
from user.index import user
app.include_router(user)
# 启动应用(如果直接运行此文件)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="127.0.0.1", port=8000)

在这里插入图片描述
6、路由写到一个文件里
在这里插入图片描述
url.py文件

from fastapi import APIRouter
from user.index import user
urls = APIRouter(prefix="/api")
urls.include_router(user)

index.py文件

from fastapi import APIRouter
# 创建了分路由
user = APIRouter(prefix="/user", tags=["主项目,顶级,前缀api"])
@user.get("/index")
def index():
return {"message": "Hello World"}

main.py文件

from typing import Dict, Any
from fastapi import FastAPI,Request
from starlette.staticfiles import StaticFiles
app = FastAPI()
app.mount("/static", StaticFiles(directory="static"), name="static")
@app.post("/dade",tags=["给接口分组标签"],summary='测试接口,接口介绍',description='接口的描述',response_description='响应数据的详细描述')
async def dade(request: Request):
json_data = await request.json()
return {"dade": json_data}
from urls.url import urls
app.include_router(urls)
# 启动应用(如果直接运行此文件)
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="127.0.0.1", port=8000)

在这里插入图片描述

posted @ 2025-09-12 20:20  yfceshi  阅读(7)  评论(0)    收藏  举报