相关疑难解决方法(0)

如何使用 FastAPI 将下拉菜单添加到基于 BaseModel 的 Swagger UI autodocs?

我有以下课程:

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)

如何显示选择字段的下拉列表?

python swagger swagger-ui openapi fastapi

4
推荐指数
1
解决办法
3646
查看次数

使用 Pydantic 模型的 FastAPI 查询参数

我有一个 Pydantic 模型如下

class Student(BaseModel):
    name:str
    age:int
Run Code Online (Sandbox Code Playgroud)

通过此设置,我希望获得如下 OpenAPI 架构:

在此输入图像描述

那么,如何使用 Pydantic 模型来获取 FastAPI 中的 from 查询参数呢?

python pydantic fastapi

3
推荐指数
1
解决办法
6635
查看次数

How to pass URL as a path parameter to a FastAPI route?

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)

python starlette fastapi

3
推荐指数
1
解决办法
7973
查看次数

如何使用 FastAPI 在查询参数名称中允许使用连字符 (-)?

我有一个简单的应用程序如下:

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_nameyour-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)

python query-string pydantic fastapi

3
推荐指数
1
解决办法
551
查看次数