SQLAlchemy を使用して既存の MySQL データベースを Flask アプリケーションに統合するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-09 08:11:02
オリジナル
1039 人が閲覧しました

How to Integrate an Existing MySQL Database into a Flask Application Using SQLAlchemy?

既存の MySQL データベースを Flask アプリケーションに統合する

SQLAlchemy を使用して既存の MySQL データベースを Flask アプリケーションと統合するという課題に直面しています。 Flask は確立されたデータベースが関係するシナリオに直接関与しませんが、最適なアプローチを理解することが重要です。

SQLAlchemy について

SQLAlchemy は強力な ORM (オブジェクト リレーショナル) Mapping) は、Python データベースと SQL データベースの間のギャップを埋めるフレームワークです。既存のデータベースで SQLAlchemy を効果的に使用するには、Flask に関する考慮事項を一時的に脇に置くことをお勧めします。 SQLAlchemy の基礎を理解することに重点を置きます。

基本モデルの作成

次の手順に従って、既存のデータベース テーブルを反映する SQLAlchemy の基本モデルを作成します。

  1. create_engine() を使用して MySQL データベースへの接続を確立します。
  2. declarative_base() を使用して基本クラスを定義し、データベース テーブルの Python クラスを生成します。
  3. Base を使用します。 metadata.reflect(engine) を使用して、基本クラスに既存のデータベース テーブルを自動的に設定します。

サンプル コード スニペット

from sqlalchemy import create_engine, declarative_base

engine = create_engine('mysql://<username>:<password>@<host>:<port>/<database>', echo=True)
Base = declarative_base()
Base.metadata.reflect(engine)
ログイン後にコピー

テーブルの関係の定義

基本モデルが作成されたら、SQLAlchemy の関係モデルを使用してデータベース テーブル間の関係を確立します。必要に応じて、親子または 1 対多の関連付けを定義します。

コード スニペットの例

class Users(Base):
    __table__ = Base.metadata.tables['users']

class Orders(Base):
    __table__ = Base.metadata.tables['orders']

Users.orders = relationship("Orders", backref="user")
ログイン後にコピー

接続のテスト

関係を定義したら、データベースへの接続をテストできます。データベース セッションを開き、SQLalchemy のクエリ モデルを使用して単純なクエリを実行します。

サンプル コード スニペット

from sqlalchemy.orm import scoped_session, sessionmaker

db_session = scoped_session(sessionmaker(bind=engine))
for item in db_session.query(Users.id, Users.name):
    print(item)
ログイン後にコピー

Flask との統合

SQLAlchemy をしっかりと理解すれば、既存のデータベースを Flask アプリケーションに統合できるようになります。コントローラーとビューを使用して、Flask コンテキスト内でデータベース機能を公開します。

以上がSQLAlchemy を使用して既存の MySQL データベースを Flask アプリケーションに統合するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート