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)