aba*_*a2s 4 python swagger swagger-ui openapi fastapi
我有以下课程:
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)
如何显示选择字段的下拉列表?
使用文字值。Literal
type 是 Python 标准库自 Python 3.8 起的新功能(在 Python 3.8 之前,它需要Typing-extensions包),并受 Pydantic 支持。例子:
from fastapi import FastAPI, Depends
from pydantic import BaseModel
from typing import Literal
app = FastAPI()
class Quiz(BaseModel):
question: str
subject: str
choice: Literal['eu', 'us', 'cn', 'ru'] = 'us'
@app.post('/submit')
def post_data(data: Quiz = Depends()):
return data
Run Code Online (Sandbox Code Playgroud)
使用Enums
(另请参阅 Python 的enum
模块,以及 FastAPI 关于预定义值的文档)。通过让您的Enum
子类继承自str
,API 文档将能够知道这些值必须是类型string
并且能够正确呈现。例子:
from fastapi import FastAPI, Depends
from pydantic import BaseModel
from enum import Enum
app = FastAPI()
class Country(str, Enum):
eu = 'eu'
us = 'us'
cn = 'cn'
ru = 'ru'
class Quiz(BaseModel):
question: str
subject: str
choice: Country = Country.us
@app.post('/submit')
def post_data(data: Quiz = Depends()):
return data
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3646 次 |
最近记录: |