我有以下课程:
class Quiz(BaseModel):
question: str
subject: str
choice: str = Query(choices=('eu', 'us', 'cn', 'ru'))
Run Code Online (Sandbox Code Playgroud)
我可以像这样基于此类渲染表单
@api.post("/postdata")
def post_data(form_data: Quiz = Depends()):
return form_data
Run Code Online (Sandbox Code Playgroud)
如何显示选择字段的下拉列表?
我有一个 Pydantic 模型如下
class Student(BaseModel):
name:str
age:int
Run Code Online (Sandbox Code Playgroud)
通过此设置,我希望获得如下 OpenAPI 架构:

那么,如何使用 Pydantic 模型来获取 FastAPI 中的 from 查询参数呢?
I have created a simple API using FastAPI, and I am trying to pass a URL to a FastAPI route as an arbitrary path parameter.
from fastapi import FastAPI
app = FastAPI()
@app.post("/{path}")
def pred_image(path:str):
print("path",path)
return {'path':path}
Run Code Online (Sandbox Code Playgroud)
When I test it, it doesn't work and throws an error. I am testing it this way:
http://127.0.0.1:8000/https://raw.githubusercontent.com/ultralytics/yolov5/master/data/images/zidane.jpg
Run Code Online (Sandbox Code Playgroud) 我有一个简单的应用程序如下:
from typing import Annotated
import uvicorn
from fastapi import FastAPI, Query, Depends
from pydantic import BaseModel
app = FastAPI()
class Input(BaseModel):
a: Annotated[str, Query(..., alias="your_name")]
@app.get("/")
def test(inp: Annotated[Input, Depends()]):
return f"Hello {inp.a}"
def main():
uvicorn.run("run:app", host="0.0.0.0", reload=True, port=8001)
if __name__ == "__main__":
main()
Run Code Online (Sandbox Code Playgroud)
curl "http://127.0.0.1:8001/?your_name=amin"返回“你好阿明”
我现在将别名从 更改your_name为your-name。
from typing import Annotated
import uvicorn
from fastapi import FastAPI, Query, Depends
from pydantic import BaseModel
app = FastAPI()
class Input(BaseModel):
a: Annotated[str, Query(..., alias="your-name")] …Run Code Online (Sandbox Code Playgroud) fastapi ×4
python ×4
pydantic ×2
openapi ×1
query-string ×1
starlette ×1
swagger ×1
swagger-ui ×1