Как получить несколько полей ввода формы в качестве словаря в Фастапи? - PullRequest
0 голосов
/ 02 марта 2020

Я должен отправить такую ​​форму в конечную точку fastapi с 14 полями ввода, как показано ниже

<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 полей.

, но есть ли способ получить все поля с помощью одной схемы pydanti c. как ниже

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

1 Ответ

0 голосов
/ 05 марта 2020

Создайте модель класса со всеми вашими полями и просто добавьте свой класс

    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...
...