Pythonでpydanticとdatasetを使用しユーザーのデータモデルを作成しDB保存からの表示

スポンサーリンク

Pythonでpydanticとdatasetを使用しユーザーのデータモデルを作成しDB保存からの表示を行ってみます。

今回はpydanticdatasetを用います。この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を使用しユーザーのデータモデルを作成し、ユーザーデータをインメモリデータベースに保存し、表示させることができました。

コメント

タイトルとURLをコピーしました