PythonのFlaskとSQLAlchemyの構成 その1

2025-07-09 11:00:44

あまり体系だっていないが、メモ用。
FlaskとSQLAlchemyを使って、Webアプリケーションを作る場合の構成について。

venv環境を作った後のライブラリインストール

$ pip install flask sqlalchemy Flask-Sqlalchemy

クライアントサイドはReactとかがいいのだが、一旦今はFlaskのjinja2上でtemplateからhtmlを生成し返却ようにしている。
DBはSQLiteなので特に何も他にインストールしなくても、標準でPythonに入っている。

SQLAlchemyだけを検索すると、微妙に違うのだが、
Flask-Sqlalchemyは、FlaskからSQLAlchemyを簡単に使えるライブラリなので、こっちを検索したほうが情報が見つかる。
その中で、テーブル間のリレーションに関して有用なURLを貼っておく。
1対1, 1対N, N対NのそれぞれでどうModelを作るか、N対Nで付加情報があった場合にどうするかをまとめてある。

Flask-SQLAlchemy Relationships: Exploring Relationship Associations - DEV Community
今更ながらFastAPI + SQLAlchemy でテーブルリレーションの実装まとめ(多対多) #sqlalchemy - Qiita

ちなみに、SQLAlchemyのリレーションでは、back_populatesとbackrefがあり、書き方の違いは下記。
なお、backrefのほうが手軽だが、後での保守の容易さからするとback_populatesのほうが良いらしい。

SQLAlchemyのback_populatesとbackrefの違いとどちらも使わない場合 #Python - Qiita

チュートリアル的な記事は下記。
【Python Flask】初心者プログラマーのWebアプリ#1 簡単なページ作成 #Python3 - Qiita

なお、デザイン的なものは、Bootstrapを使って楽をする。
Flaskには、Bootstrapと連携するための色んなライブラリがあるが、
正直どれがメンテナンスされているか不明なのと、
どうせCSSとJSなので、CDNから自前で持ってくるほうが依存関係がないのでよいと思う。

ということで、
Bootstrapの公式サイトから、CDNのURLを持ってきて、それをtemplateに組み込む。
なお、現時点ではBootstrapは5.3.7だった。

Bootstrap · The most popular HTML, CSS, and JS library in the world.

一旦ここまで。




Comments

There are currently no comments on this article, be the first to add one below

Add a Comment

Note that I may remove comments for any reason, so try to be civil. If you are looking for a response to your comment, either leave your email address or check back on this page periodically.