Pythonでpydanticとdatasetを使用しユーザーのデータモデルを作成しDB保存からの表示を行ってみます。
今回はpydanticとdatasetを用います。この2つのライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要があります。
■Python
今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows11)
■pydanticとdatasetを使用しユーザーのデータモデルを作成しDB保存からの表示
では、早速pydanticとdatasetを使用しユーザーのデータモデルを作成しDB保存からの表示させるスクリプトを書いていきます。
■コード
from pydantic import BaseModel from dataset import Database # ユーザーデータモデルの定義 class User(BaseModel): id: int name: str email: str # ユーザーデータの保存関数 def save_user(user: User, table): data = user.dict() # ユーザーデータを辞書形式に変換 table.insert(data) # データの挿入 # ユーザーデータの表示関数 def display_users(table): users = table.all() # テーブル内のすべてのデータを取得 for user in users: print(user) # ユーザーデータの作成と保存 def main(): db = Database('sqlite:///:memory:') # インメモリデータベースの作成 table = db.create_table('users') # テーブルの作成 user_data = { 'id': 1, 'name': '田中テスト太郎', 'email': 'tanaka_test@xx.xxx' } user = User(**user_data) # ユーザーデータの作成 save_user(user, table) # ユーザーデータの保存 display_users(table) # ユーザーデータの表示 if __name__ == '__main__': main()
まずはpydanticモジュールからBaseModelを、datasetモジュールからDatabaseをインポートします。インポート後、ユーザーデータモデルの定義します。User クラスは、pydantic モジュールの BaseModel クラスを継承しています。そしてUser クラスは、ユーザーデータの属性(id、name、email)を定義しています。このクラスは、データのバリデーションや型の変換を行うための便利な機能を提供。
次にユーザーデータの保存関数(save_user)を定義します。save_user 関数は、引数として User オブジェクトとデータベースのテーブルを受け取ります。関数内では、User オブジェクトを辞書形式に変換し、データベースのテーブルに挿入します。
次にユーザーデータの表示関数(display_users)を定義します。display_users 関数は、データベースのテーブルを引数として受け取ります。関数内では、テーブル内のすべてのデータを取得し、それぞれのデータを表示します。
次にユーザーデータの作成と保存(main 関数)を定義します。main 関数は、プログラムのエントリーポイントです。関数内ではDatabase クラスのインスタンスを作成し、インメモリデータベースを作成。そしてデータベースのテーブルを作成します。作成後、ユーザーデータを辞書形式で定義します。User オブジェクトを作成し、save_user 関数を呼び出してユーザーデータを保存します。display_users 関数を呼び出して、保存されたユーザーデータを表示するという処理が行われます。
なお、今回はインメモリデータベースが使用していますので、プログラムが終了するとデータも失われます。インメモリデータベースは一時的なデータの保存やテスト目的に適していますが、実際のアプリケーションでは永続的なデータストレージを考慮してください。
■検証・実行
今回書いたスクリプトを「p_m.py」という名前でPythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。
実行してみるとpydanticとdatasetを使用しユーザーのデータモデルを作成し、ユーザーデータをインメモリデータベースに保存し、表示させることができました。
コメント