PydanticモデルとPostの使用
1728 ワード
実習コード
class Profile(BaseModel): #BaseModel을 상속받는 모델
name: str
email: str
age: int
class Product(BaseModel): #BaseModel을 상속받는 모델
name: str
price: int
discount_percent : int
discounted_price:float
class User(BaseModel):
name:str
email:str
app = FastAPI()
@app.post('/purchase')
def purchase(user:User,product:Product): #파라미터를 2개의 모델로 할 수 있음
product.discounted_price = product.price - \
(product.price * product.discount_percent) / 100
return {'user':user, 'product':product }
@app.post('/addproduct/{product_id}')
def addproduct(product:Product,product_id:int,category:str): #product는 모델, product_id는 path 파라미터, category는 쿼리파라미터
product.discounted_price= product.price- \
(product.price*product.discount_percent)/100
return {'product_id':product_id,'product':product,'category':category}
@app.get('/user/admin')
def main():
return {'This is admin page'}
@app.post('/adduser')
def adduser(profile:Profile):
return profile
Pydantic
Pydanticは、モデルを使用するときにPydanticのBaseModelを継承するヘルプパーティションのライブラリです.
上記のコードでは、Profile、Product、UserクラスがBaseModelを継承し、各クラスの変数が含まれています.
Post
postとは、HTTPで新しいリソースを作成し、サーバにデータを転送する動作です.
上記のコードでは、購入方法はユーザーと製品クラスをパラメータとし、各クラスの変数を使用して、ユーザーに製品を購入するために新しいリソースを生成させます.
Post運転と結果
Reference
この問題について(PydanticモデルとPostの使用), 我々は、より多くの情報をここで見つけました https://velog.io/@wnsghks4104/Pydantic-모델과-Post-활용テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol