1 2 3 4 5 6 7 # 期待する型でない値を導入するとエラーが発生する ( , ) # ValidationError: 1 validation error for Order # name # Input should be a valid string [type=string_type, # #input_value=10000, input_type=int] # For further information visit https:// #errors.pydantic.dev/2.11/v/string_type o Order id name = = =10000 '0001' 1 2 3 4 5 6 7 8 from import class True pydantic BaseModel ConfigDict Order BaseModel model_config ConfigDict frozen id str name str , ( ): # イミュータブルにする ( ) : : = = コー ド例
10 11 12 class "ORDERED" "SHIPPED" class None None Status StrEnum ORDERED SHIPPED Order id int customer_id int product_id int status Status ordered_at datetime shipped_at datetime ( ): @dataclass : : : : : : : = = | = 注文テーブル設計例(ミュータブル) カラム名 データ型 NULL許容 id UUID 不可 customer_id UUID 不可 product_id UUID 不可 status STRING 不可 ordered_at DATETIME 不可 shipped_at DATETIME 可 モデル例 1 2 3 4 # 利用例 (...), # DBから復元したもの . . . . () # 発送済みに更新 order Order order status Status SHIPPED order shipped_at datetime now = = = 利用例
W W W W W H Who(誰が):顧客、管理者など What(何を):商品、注文など When(いつ):注文日時、発送日時など Where(どこで):住所、店舗など Why(なぜ):返品理由など How(どのように):支払い方法など たとえば「顧客」「商品」「ショップ」などを、 データとして扱える単位に抽象化したもの 商品 ショップ 顧客