flask データベース 処理(Flask-SqLAlchemy)
目次
flaskでデータベースにアクセスするには
データベースを用意して、flask ⇔ データベースの接続、SQL文を記述して実行 → Commit
せっかくフレームワークを使用して共通性を持たせているのであれば、なるべくデータベース関連も同じく共通化しておきたい。
※他の人が触ってもわかりやすくしておき、保守・メンテナンス性を高める目的。
pythonはいろいろなパッケージが既に用意されています。
データベース関連では【SQLAlchemy】
SQLAlchemy(ウィキペディア)SQLAlchemyは、Pythonプログラミング言語のためのオープンソースのSQLツールキットおよびオブジェクト関係マッピングライブラリ(ORM)で、MIT Licenseの下で公開されている。
SQL文を直接かかなくても、関数を使用してデータベースの値を取得・創成・更新・削除できる。
Flask-SQLAlchemy
Flask-SQLAlchemyとは?
Flask-SQLAlchemyFlask-SQLAlchemy is an extension for Flask that adds support for SQLAlchemy to your application. It simplifies using SQLAlchemy with Flask by setting up common objects and patterns for using those objects, such as a session tied to each web request, models, and engines.
Flask-SQLAlchemy does not change how SQLAlchemy works or is used.
—訳—:
Flask-SQLAlchemy は、アプリケーションにSQLAlchemyのサポートを追加するFlaskの拡張機能です。各 Web リクエスト、モデル、エンジンに関連付けられたセッションなど、共通のオブジェクトとそれらのオブジェクトを使用するためのパターンを設定することで、Flask での SQLAlchemy の使用を簡素化します。
Flask-SQLAlchemy は、SQLAlchemy の動作方法や使用方法を変更しません。
FlaskでSQLAlchemyを簡単に使用できるようにしている
ドキュメント(3.0x)
https://flask-sqlalchemy.palletsprojects.com/en/3.0.x/
PyPi
2023年03月時点:version 3.0.3
https://pypi.org/project/Flask-SQLAlchemy/
⚠注意点
"Model.query" や "session.query”の記述はレガシーの為、推奨の方法を当サイトは記載しております。
Legacy Query InterfaceYou may see uses of Model.query or session.query to build queries. That query interface is considered legacy in SQLAlchemy. Prefer using the session.execute(select(...)) instead.
—訳—:
Model.queryまたはを使用してクエリを作成する場合がありますsession.query。そのクエリ インターフェイスは、SQLAlchemy ではレガシーと見なされます。代わりにを使用することをお勧めします session.execute(select(...))。
SELECT
SELECT関連は以下ページにまとめてあります。

Flask-SqLAlchemy SELECT(取得)
Flask-SQLAlchemyでデータベースを取得する方法を、サンプルコードをもとに掲載。scalar/scalar_one/get_or_404/first_or_404/one_or_404/scalars/scalars().all()
https://outpust.jp/blog/0e0b9dba-89e1-4dfd-9e92-0832162c13e4
INSERT
INSERT関連は以下ページにまとめてあります。

Flask-SqLAlchemy INSERT(挿入)
Flask-SQLAlchemyでの挿入の方法を、サンプルコードをもとに掲載。構文「db.session.add(model_object)」
https://outpust.jp/blog/cdd92a94-65f1-4397-913d-4cad1cd7e763
UPDATE
UPDATE関連は以下ページにまとめてあります。

Flask-SqLAlchemy UPDATE(更新)
Flask-SQLAlchemyでの更新の方法を、サンプルコードをもとに掲載。構文「model_object.item = "更新内容"」
https://outpust.jp/blog/ddfdac95-5b83-44a9-a44f-74ebd1762315
DELETE
DELETE関連は以下ページにまとめてあります。


名前:田中寛之
今まで約20年間、出版社、マスコミ、化粧品会社、システム会社・病院・クリニックにてシステムエンジニアとして勤務。現在、個人事業主「ONLINE-WORLD」として活動し、42歳からPythonを始めました!


名前:田中寛之
今まで約20年間、出版社、マスコミ、化粧品会社、システム会社・病院・クリニックにてシステムエンジニアとして勤務。現在、個人事業主「ONLINE-WORLD」として活動し、42歳からPythonを始めました!