Flask フレームワークでのデータベース統合と ORM の実践
要約:
Flask は、シンプルで使いやすいルーティングを提供する軽量の Python Web フレームワークです。ビュー関数、テンプレート、その他の関数がありますが、実際のアプリケーションでは、ほとんどのアプリケーションはデータを保存したり読み取ったりするためにデータベースと対話する必要があります。この記事では、Flask フレームワークにデータベースを統合し、ORM フレームワークを使用してデータベース操作を簡素化する方法を紹介します。
1. Flask データベースの統合
Flask フレームワークでは、SQLite、MySQL、PostgreSQL などのさまざまなデータベースを使用してデータを保存できます。データベースを統合する前に、対応するデータベース ドライバーをインストールする必要があります。 Flask-SQLAlchemy は使いやすく強力であるため、ORM フレームワークとして推奨されます。
依存関係のインストール
pip コマンドを使用して必要な依存関係をインストールします:
pip install Flask SQLAlchemy
データベースの構成
で使用できますFlask アプリケーションの構成ファイル、またはデータベース接続パラメーターをコード内で直接構成します。たとえば、SQLite データベースの接続パラメータは次のように構成できます。
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///your_database.db'
ここでは、データベース ファイル名は「your_database.db」に設定されていますが、必要に応じて変更することもできます。
データベースの初期化
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 の拡張機能です。
モデルを定義する
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 が主キーです。
最初に Flask-Migrate 依存関係をインストールします:
pip install Flask-Migrate
次のコマンドを使用してデータベース移行を初期化します:
flask db init
次に、移行スクリプトを生成します:
flask db migrate -m "initial migration"
最後に、データベースの移行を実行します:
flask db upgrade
データベース操作
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 サイトの他の関連記事を参照してください。