1.获取参数
from pydantic import BaseModel
from fastapi import FastAPI
import uvicorn as u
app = FastAPI()
@app.get("/getInfo/{name}")
def geturl(name: str):
# 请求方式:http://127.0.0.1:9003/getInfo/zhangsan
return {"msg": "这是get请求url参数", "name": name}
@app.get("/getInfo")
def getUrl(name: str, age: int):
# 请求方式:http://127.0.0.1:9003/getInfo?name=zhangsan&age=18
return {"msg": "这是get请求params参数", "age": age, "name": name}
@app.post("/postInfo")
def psotUrl(name: str):
# 请求方式:http://127.0.0.1:9003/postInfo?name=张三
return {"msg": "这里是post请求params参数", "name": name}
class Item(BaseModel):
age: int = None #age可选
name: str #name必须传值
@app.post("/postInfos")
def postUrls(args: Item):
"""
请求方式:
curl --location --request POST 'http://127.0.0.1:9003/postInfos' \
--header 'Content-Type: application/json' \
--data-raw '{"addtest":"多余参数","name":"张三","age":18}'
"""
name = args.name
age = args.age
return {"msg": "这里是post请求body参数", "name": name, "age": age}
if __name__ == "__main__":
u.run(app, host="0.0.0.0", port=9003, log_level="info")
2.异步处理
函数定义前面增加关键字:async