关于 async 我们先阅读一下廖老师的异步IO https://www.liaoxuefeng.com/wiki/1016959663602400/1017968846697824
路径参数
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}") # 路径参数 item_id 的值将作为参数 item_id 传递给你的函数。
async def read_item(item_id):
return {"item_id": item_id}
有类型的路径参数
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}")
async def read_item(item_id: int): # 类型声明:item_id 为一个整形。这里就算我传的参数是字符串'3',FastAPI都会自动帮我输出成int型,但是你传’foo’将会报错
return {"item_id": item_id}
包含路径的路径参数
假设你有一个路径操作,它的路径为 /files/{file_path}
。
但是你需要 file_path
自身也包含路径,比如 home/johndoe/myfile.txt
。
因此,该文件的URL将类似于这样:/files/home/johndoe/myfile.txt
。
路径转换器
你可以使用直接来自 Starlette 的选项来声明一个包含路径的路径参数:
from fastapi import FastAPI
app = FastAPI()
@app.get("/files/{file_path:path}")
async def read_file(file_path: str):
return {"file_path": file_path}
你可能会需要参数包含 /home/johndoe/myfile.txt
,以斜杠(/
)开头。
在这种情况下,URL 将会是 /files//home/johndoe/myfile.txt
,在files
和 home
之间有一个双斜杠(//
)。