参数

不同情况下的参数作用与意义各不相同

1.路径参数

@app.get("/book/{id}")
async def get_book(id: int):
    return {"id": id}

Path

@app.get("/get_name/{name}")
async def get_nanme(name: str = Path(...,max_length=10,min_length=2,description='长度范围2-10')):
    return {"name": name}

通过导入Path 可以控制参数的一些条件

第一个位置的 … 代表该参数必填

max_length和min_length分别限制了最大和最小长度

description 表示注解

2.查询参数

@app.get("/news/news_list")
async def get_news_list(
        page: int = Query(default=1, ge=1, le=10,description='范围在1-10'),
        limit: int = Query(default=5, ge=1, le=10),
        skip: int = Query(default=0, ge=0, le=10),
):
    
    return {"page": page, "limit": limit, "skip": skip}

Query

查询参数可以通过Query来控制

3.请求体参数

class User(BaseModel):
    username: str = Field(...,min_length=2,max_length=10,description='输入用户名,长度2-10')
    password: str = Field(...,min_length=2,max_length=10,description='输入密码,长度2-10')
    age: int

@app.post("/register")
async def register(user: User):
    return user

Filed

这里输入注解时是不提醒的

当输入类型错误时响应会有提示

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注