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

Barbara Streisand
リリース: 2024-11-10 00:22:02
オリジナル
732 人が閲覧しました

How can I integrate an existing MySQL database into a Flask application using SQLAlchemy?

既存のデータベースを使用した Flask アプリケーションの構築

はじめに

既存のデータベースを Flask アプリケーションに統合することは、ソフトウェア開発における一般的な要件です。この記事では、SQLAlchemy を使用してこの統合を実現するための効果的なアプローチに関するガイダンスを提供します。

状況の概要

当面の問題には、既存の MySQL データベースへの接続と、それを Flask アプリケーション内で利用することが含まれます。開発者は Django に精通していますが、この特定のユースケースに最適なアプローチを模索しています。

アプローチ

SQLAlchemy について

SQLAlchemy が Django の主要なコンポーネントであることを認識することが重要です。アプリケーションとデータベースの間のギャップを埋めます。 SQLAlchemy の機能に注目すると、強力な基盤が得られます。

データベースへの接続

まず、SQLAlchemy の create_engine() 関数を使用して MySQL データベースへの接続を確立します。データベースへのパスと必要な構成パラメータを指定します。

データベース エンティティの作成

SQLAlchemy の declarative_base() とそのサブクラスを利用して、データベース テーブルを表すエンティティを定義します。このステップには、既存のデータベース構造を Python オブジェクトにマッピングすることが含まれます。

データベースのクエリ

SQLAlchemy の式とセッション管理機能を使用して、データベースに対してクエリを実行します。データを取得、フィルタリング、操作するためのクエリを作成します。

サンプル コード

開始するには、次の例を検討してください。

#!/usr/bin/python
# -*- mode: python -*-

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import scoped_session, sessionmaker

engine = create_engine('mysql+pymysql://<username>:<password>@<host>:<port>/<database>', echo=False)
Base = declarative_base()
Base.metadata.reflect(engine)

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

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

ここでは、接続するように SQLAlchemy を構成します。 MySQL データベースを作成し、既存のテーブル構造を反映して、「Users」テーブルの Python エンティティを定義します。サンプル クエリは、データベースからデータを取得する方法を示しています。

結論

SQLAlchemy の中心的な概念を理解し、それを特定のデータベース スキーマに適用することで、既存のデータベースを Flask アプリケーションにシームレスに統合できます。 。最初に SQLAlchemy の側面に焦点を当ててから、Web 開発用に Flask の機能を導入することを忘れないでください。

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

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