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)://获得getquery_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, Anyfrom fastapi import FastAPI,Request
from starlette.staticfiles import StaticFilesapp = 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 uvicornuvicorn.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, Anyfrom fastapi import FastAPI,Request
from starlette.staticfiles import StaticFilesapp = 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 uvicornuvicorn.run(app, host="127.0.0.1", port=8000)