fastapi入门二复杂的get请求
fastapi入门二复杂的get请求从路径中获取参数"""@File:fastapiOne.py@Desciption:"""import uvicornfrom fastapi import FastAPIapp = FastAPI()@app.get("/fastapi/{date}")async def date(date):return {"date": date}if __name__
·
fastapi入门二复杂的get请求
从路径中获取参数
"""
@File : fastapiOne.py
@Desciption:
"""
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/fastapi/{date}")
async def date(date):
return {"date": date}
if __name__ == "__main__":
uvicorn.run(app='fastapiOne:app', host='127.0.0.1', port=8100, reload=True, debug=True)
请求
http://127.0.0.1:8100/fastapi/20201010
结果
{
"date": "20201010"
}
从查询参数中获取参数
"""
@File : fastapiOne.py
@Desciption:
"""
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/fastapi/")
async def date(date, name):
return {"date": date, "name": name}
if __name__ == "__main__":
uvicorn.run(app='fastapiOne:app', host='127.0.0.1', port=8100, reload=True, debug=True)
请求
http://127.0.0.1:8100/fastapi/?date=20201010&name=zhangsan
结果
{
"date": "20201010",
"name": "zhangsan"
}
注意:这里的就默认了为string类型了
参数的类型校验
"""
@File : fastapiOne.py
@Desciption:
"""
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/fastapi/")
async def date(date: int, name: str):
return {"date": date, "name": name}
if __name__ == "__main__":
uvicorn.run(app='fastapiOne:app', host='127.0.0.1', port=8100, reload=True, debug=True)
请求
http://127.0.0.1:8100/fastapi/?date=20201010&name=zhangsan
结果
{
"date": 20201010,
"name": "zhangsan"
}
注意:这里的date就成了int类型了
参数的必填校验与默认参数
路径参数的必填校验
不用校验,为什么,因为路径不存在的话就是不存在,说明没有这个接口而已,没必要校验
查询参数的必填校验与默认参数—通过Query
异常情况,有参数未填写
"""
@File : fastapiOne.py
@Desciption:
"""
import uvicorn
from fastapi import FastAPI
app = FastAPI()
@app.get("/fastapi/")
async def date(date: int, name: str):
return {"date": date, "name": name}
if __name__ == "__main__":
uvicorn.run(app='fastapiOne:app', host='127.0.0.1', port=8100, reload=True, debug=True)
请求
http://127.0.0.1:8100/fastapi/?date=20201010
结果
{
"detail": [
{
"loc": [
"query",
"name"
],
"msg": "field required",
"type": "value_error.missing"
}
]
}
正常情况
"""
@File : fastapiOne.py
@Desciption:
"""
import uvicorn
from fastapi import FastAPI, Query #通过导入Query可以实现这个功能
app = FastAPI()
@app.get("/fastapi/")
async def date(date: int = Query(20201111), name: str = Query(None)):
# date被定义为了int类型,默认值是20201010,name被定义为了str,默认值为None
return {"date": date, "name": name}
if __name__ == "__main__":
uvicorn.run(app='fastapiOne:app', host='127.0.0.1', port=8100, reload=True, debug=True)
请求
http://127.0.0.1:8100/fastapi/?date=202010111
结果
{
"date": 202010111,
"name": null
}
请求
http://127.0.0.1:8100/fastapi/?name=zhangsan
结果
{
"date": 20201111,
"name": "zhangsan"
}
更多推荐



所有评论(0)