fastapi form data with pydantic model

前端 未结 3 680
滥情空心
滥情空心 2020-12-16 07:38

I am trying to submit data from html forms and on the validate it with pydantic model.
Using this code

from fastapi import FastAPI, Form
from pydantic im         


        
3条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-16 08:21

    If you're only looking at abstracting the form data into a class you can do it with a plain class

    from fastapi import Form, Depends
    
    class AnyForm:
        def __init__(self, any_param: str = Form(...), any_other_param: int = Form(1)):
            self.any_param = any_param
            self.any_other_param = any_other_param
    
        def __str__(self):
            return "AnyForm " + str(self.__dict__)
    
    @app.post('/me')
    async def me(form: AnyForm = Depends()):
        print(form)
        return form
    

    And it can also be turned into a Pydantic Model

    from uuid import UUID, uuid4
    from fastapi import Form, Depends
    from pydantic import BaseModel
    
    class AnyForm(BaseModel):
        id: UUID
        any_param: str
        any_other_param: int
    
        def __init__(self, any_param: str = Form(...), any_other_param: int = Form(1)):
            id = uuid4()
            super().__init__(id, any_param, any_other_param)
    
    @app.post('/me')
    async def me(form: AnyForm = Depends()):
        print(form)
        return form
    

提交回复
热议问题