2

我必须向带有 14 个输入字段的 fastapi 端点提交这样的表单,如下所示

<FORM NAME='TESTFORM' ACTION='URL' METHOD='POST'>
            <input type='hidden' name='CURRENCY' value='PAYMENT_CURRENCY'>
            <input type='hidden' name='GATEWAYNAME' value='GATEWAY_USED'>
            <input type='hidden' name='RESPMSG' value='RESPONSE_MESSAGE_DESCRIPTION'>
            <input type='hidden' name='BANKNAME' value='BANK_NAME_OF_ISSUING_PAYMENT_MODE'>
</FORM>

我可以像下面这样一个一个地获取字段。

@app.post("/users/payment/response")
def payment_response_users(
        response_currency:str = Form(...), response_gateway:str = Form(...))

所有 14 个字段的方式相同。

但是有没有办法通过单个 pydantic 模式获取所有字段。像下面这样

@app.post("/users/payment/response")
def payment_response_users(
        response_model:PaymentRespModel = Form(...))
4

1 回答 1

1

创建一个包含所有字段的类模型,然后添加你的类

    from pydantic import BaseModel        

    class FormData(BaseModel):
        response_currency: str
        response_gateway: str
        # your all fields

    
    def payment_response_users(form_data: FormData):
        
        # your code , access using form_data.response_currency and so on...
于 2020-03-05T10:17:06.540 回答