ホームページ  >  記事  >  バックエンド開発  >  Flask フレームワークでのデータベース統合と ORM の実践

Flask フレームワークでのデータベース統合と ORM の実践

WBOY
WBOYオリジナル
2023-09-27 12:01:02569ブラウズ

Flask フレームワークでのデータベース統合と ORM の実践

Flask フレームワークでのデータベース統合と ORM の実践

要約:
Flask は、シンプルで使いやすいルーティングを提供する軽量の Python Web フレームワークです。ビュー関数、テンプレート、その他の関数がありますが、実際のアプリケーションでは、ほとんどのアプリケーションはデータを保存したり読み取ったりするためにデータベースと対話する必要があります。この記事では、Flask フレームワークにデータベースを統合し、ORM フレームワークを使用してデータベース操作を簡素化する方法を紹介します。

1. Flask データベースの統合
Flask フレームワークでは、SQLite、MySQL、PostgreSQL などのさまざまなデータベースを使用してデータを保存できます。データベースを統合する前に、対応するデータベース ドライバーをインストールする必要があります。 Flask-SQLAlchemy は使いやすく強力であるため、ORM フレームワークとして推奨されます。

  1. 依存関係のインストール
    pip コマンドを使用して必要な依存関係をインストールします:

    pip install Flask SQLAlchemy
  2. データベースの構成
    で使用できますFlask アプリケーションの構成ファイル、またはデータベース接続パラメーターをコード内で直接構成します。たとえば、SQLite データベースの接続パラメータは次のように構成できます。

    app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///your_database.db'

    ここでは、データベース ファイル名は「your_database.db」に設定されていますが、必要に応じて変更することもできます。

  3. データベースの初期化
    Flask アプリケーションを初期化するときは、データベースを初期化する必要があります。次のコードをアプリケーションのファクトリ関数に追加できます。

    from flask_sqlalchemy import SQLAlchemy
    
    db = SQLAlchemy()
    
    def create_app():
     app = Flask(__name__)
     # ...
     db.init_app(app)
     # ...
     return app

    ここでは、db.init_app(app) を使用してデータベースを初期化します。

2. データベース操作には ORM フレームワークを使用します。
ORM (オブジェクト リレーショナル マッピング) は、リレーショナル データベースのテーブル構造とオブジェクトの間のマッピングであり、開発を可能にします。データベースをオブジェクト指向で構築します。 Flask-SQLAlchemy は、SQLAlchemy と組み合わせて使用​​して ORM 関数を実装できる Flask の拡張機能です。

  1. モデルを定義する
    Flask アプリケーションで ORM フレームワークを使用する場合、データベース テーブルをマップするためのモデル (Model) を定義する必要があります。モデル クラスは、各フィールドとフィールド属性を定義し、クラスとテーブルの間でマッピングします。たとえば、User モデルを定義します。

    from flask_sqlalchemy import SQLAlchemy
    
    db = SQLAlchemy()
    
    class User(db.Model):
     id = db.Column(db.Integer, primary_key=True)
     name = db.Column(db.String(50), unique=True)
     email = db.Column(db.String(120), unique=True)
    
     def __init__(self, name, email):
         self.name = name
         self.email = email

    モデル クラスでは、各フィールドは db.Column のインスタンスであり、フィールドの型と属性を定義できます。この例では、id、名前、電子メールの 3 つのフィールドが定義されており、id が主キーです。

  2. データベース移行
    アプリケーションの開発に伴い、データベース テーブルの構造が変更される場合があります。ORM フレームワークには、データベース構造を簡単に変更および更新できるデータベース移行ツールが用意されています。 Flask フレームワークでは、Flask-Migrate 拡張機能を使用してデータベース移行を実装できます。

最初に Flask-Migrate 依存関係をインストールします:

pip install Flask-Migrate

次のコマンドを使用してデータベース移行を初期化します:

flask db init

次に、移行スクリプトを生成します:

flask db migrate -m "initial migration"

最後に、データベースの移行を実行します:

flask db upgrade
  1. データベース操作
    ORM フレームワークを使用すると、追加、削除、変更などのデータベース操作を実行するのは非常に簡単です。 、クエリはモデル クラスのメソッドを通じて実装できます。よく使用されるデータベース操作のサンプルコードを以下に示します。

    # 查询所有用户
    users = User.query.all()
    
    # 根据条件查询用户
    user = User.query.filter_by(name='username').first()
    
    # 添加用户
    new_user = User('username', 'email@example.com')
    db.session.add(new_user)
    db.session.commit()
    
    # 更新用户
    user.name = 'new_username'
    db.session.commit()
    
    # 删除用户
    db.session.delete(user)
    db.session.commit()

    データベース操作は、モデルクラスのクエリオブジェクトを呼び出し、セッションを変更することで実行できます。

結論:
この記事では、Flask フレームワークにデータベースを統合し、データベース操作に ORM フレームワークを使用する方法を紹介します。 Flask-SQLAlchemy 拡張機能を使用すると、モデルを簡単に定義し、データベース移行を実行し、データベース操作を実行できます。実際のアプリケーションでは、ニーズに応じてさまざまなデータベース タイプを選択でき、モデルのニーズに応じて合理的な設計を実行できます。

注:
上記の例は参照のみを目的としており、実際に使用するには、特定のプロジェクト要件に応じて変更および拡張する必要があります。

以上がFlask フレームワークでのデータベース統合と ORM の実践の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。