11-Flask

Flask(Part.21)| 【複数アプリケーションの統合(1)】

python| まとめ | 現役エンジニア&プログラミングスクール講師「python」のまとめページです。pythonに関して抑えておきたい知識や文法やにについて記事をまとめています。まとめページの下部には「おすすめの学習書籍」「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中...

目標

  • 複数のアプリケーションを統合できる。

Flaskでアプリケーションを統合する方法

テーブル管理アプリケーションの作成準備

ここからは、これまでの商品管理アプリケーションとは別に、テーブル管理アプリケーションや注文管理アプリケーションを作成します。まずは、テーブル管理アプリケーションに必要なディレクトリやファイルを作成し、商品管理アプリケーションとテーブル管理アプリケーションを統合してひとつのアプリケーションとして扱えるようにします。その後、テーブル管理アプリケーションのプログラミングを進めます。

注文管理アプリケーションはテーブル管理アプリケーションの完成後に行います。

feature-tablessappブランチの作成

Git Bushを立ち上げdevelopブランチから次のコマンドを入力してfeature-tablesappブランチを作成して、ブランチの切り替えを行います。

git checkout -b feature-tablesappコマンド

プロンプトに(feature-tablesapp)と表示されます。テーブル管理アプリケーションはこのブランチで作成していきます。

テーブル管理アプリケーションに必要なディレクトリとファイルの作成

Visual Studio Codeのエクスプローラーから appsディレクトリ に tablesappディレクトリを作成します。

tablesappディレクトリのような追加のアプリケーションを作成する場合、既にあるアプリケーションの名前を変更して作業を行うとリファクタリングがうまくいかず、ルーティングがうまくいかない場合があります。アプリケーションの名前を新しい名前にしたい場合は、名前変更でなく、新規作成を行うのが良いです。

apps/tablesappディレクトリに次のディレクトリとファイルを作成します。※作成するファイルについては、名前や中身について、今後変更することものもあります。

  • static/css/style.css
  • templates/table_base.html
  • tamplates/table_form.html
  • tamplates/table_list.html
  • app.py
  • forms.py
  • models.py

「productsapp」と「ordersapp」の統合作業

ここでは、これまで作成してきた「productsapp」と、新たに準備した「ordersapp」を統合します。そのために、appsディレクトリ直下にcommon/db.pyファイルやmain.pyを作成し、両アプリをひとつのアプリケーションとして動作させるプログラムを実装します。

commonはディレクトリです。

次のディレクトリやファイルをappsディレクトリ直下に作成します。

  • common/db.py
  • main.py
common/db.pyファイルとmain.pyファイルの作成
common/db.pyファイル

common/db.pyファイルに次のプログラムを記述します。アプリケーションの統合では、複数のアプリケーションが同じデータベースを利用することが一般的です。このため、SQLAlchemyで生成するdbインスタンスを、このようなcommon/db.pyファイルで作成して、各アプリケーションからインポートできるようにします。

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()
main.pyファイル

この記事で作成するアプリケーションのように、各アプリケーションにapp.py(またはroute.py)を配置してルートを定義している場合、ルーティングの競合が発生し、正常に動作しません。これを避けるために、main.pyを作成し、ふたつのアプリケーションを統合します。なお、main.pyはappsディレクトリに配置します。

main.pyファイルに次のプログラムを記述します。main.pyでは、もともとproductsappディレクトリ内のapp.pyに記述されていたデータベース設定や画像アップロード処理の設定を記述します。そのため、productsappディレクトリにあるapp.pyファイル内で、不要な重複コードを削除し、必要なモジュールのインポートやルート設定を適切に調整する必要があります。

main.pyファイルで最も重要な個所は、各アプリケーションをBlueprintとして登録する部分です。この部分は各アプリケーションのapp.pyファイルで定義されたBlueprintの設定をインポートして行っています。

この続きはNote記事となります。

「python」おすすめ書籍 ベスト3 | 現役エンジニア&プログラミングスクール講師「python」の学習でお勧めしたい書籍をご紹介しています。お勧めする理由としては、考え方、イメージなどを適切に捉えていること、「生のpython」に焦点をあてて解説をしている書籍であることなどが理由です。勿論、この他にも良い書籍はありますが、特に質の高かったものを選んで記事にしています。ページの下部には「おすすめのITスクール情報」「おすすめ求人サイト」について情報を掲載中。...

ブックマークのすすめ

「ほわほわぶろぐ」を常に検索するのが面倒だという方はブックマークをお勧めします。ブックマークの設定は別記事にて掲載しています。

「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】「お気に入り」の登録・削除方法【Google Chrome / Microsoft Edge】について解説している記事です。削除方法も掲載しています。...
【パソコン選び】失敗しないための重要ポイント | 現役エンジニア&プログラミングスクール講師【パソコン選び】失敗しないための重要ポイントについての記事です。パソコンのタイプと購入時に検討すべき点・家電量販店で見かけるCPUの見方・購入者が必要とするメモリ容量・HDDとSSDについて・ディスプレイの種類・バッテリーの持ち時間や保証・Officeソフト・ウィルス対策ソフトについて書いています。...
RELATED POST
11-Flask

Flask(Part.12)| 【ふたつのテーブルの利用(2)ロジック部分の解説】

2025年3月5日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
11-Flask

Flask(Part.38)| 【商品管理アプリケーションの修正(3)】

2025年3月31日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
11-Flask

Flask(Part.19)| 【画像のアップロードと利用(解説編)】

2025年3月12日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site
11-Flask

Flask(Part.20)| 【商品管理アプリケーションのコミット】

2025年3月13日
プログラミング学習 おすすめ書籍情報発信 パソコン初心者 エンジニア希望者 新人エンジニア IT業界への就職・転職希望者 サポートサイト Programming learning Recommended schools Recommended books Information dissemination Computer beginners Prospective engineers New engineers Prospective job seekers in the IT industry Support site