Pythonのフレームワーク「Flask」によるWebアプリ開発の入門書です。
まずは、最小のアプリの作成から始め、問い合わせフォーム、データベースを使ったアプリ、
認証機能と段階的に作成しながら、Flaskによるアプリ開発の基礎を習得します。
その後、画像データ(写真)から物体を判別する物体検知アプリを作成しながら
実践的なアプリの作り方、その機能をWeb API化する方法について解説します。
また、物体検知機能(手書き文字認識をする分析コード)を題材に、
どのように機械学習をアプリに組み込んでいくかについても詳しく解説します。
【本書の主な内容】
●Flaskと開発の基礎
◯問い合わせフォーム/DBアプリの作成
◯認証機能の作成
◯物体検知アプリの作成
●API化/デプロイメント
◯物体検知アプリのWeb API化
◯Web APIとして外部公開
●機械学習APIの開発
◯分析コードから機械学習APIを開発する工程と方法
【主な対象読者】
●Pythonで簡単にWebアプリ開発を始めたいエンジニア
●機械学習に興味のあるWebエンジニア
●Pythonを分析用途でしか使ったことがない人
●自分でもアプリやWeb APIを作りたいデータサイエンティスト
【章構成】
●第0部 イントロダクション
Flaskの概要と環境構築
●第1部 Flask入門
最小限のアプリを作る――Flaskの基礎
データベースを利用したアプリを作る
認証機能を追加する
●第2部[Flask実践1]物体検知アプリの開発
アプリの仕様と準備
画像一覧画面を作る
サインアップとログインの画面を作る
画像アップロード画面を作る
物体検知機能を作る
検索機能を作る
カスタムエラー画面を作る
ユニットテストを作る
●第3部[Flask実践2]物体検知機能のAPI化/デプロイメント
Web APIの概要
物体検知APIの仕様
物体検知APIの実装
物体検知アプリのデプロイメント
●第4部機械学習APIの開発
機械学習の概要
機械学習APIの開発工程と実践
■第0部 イントロダクション
第0章 Flaskの概要と環境構築
0.1 Flaskの設計思想
0.2 なぜFlaskを使うのか
0.3 Python製Webフレームワークの比較
0.4 環境構築
■第1部 Flask入門
第1章 最小限のアプリを作る——Flask基礎の基礎
1.1 MVT(Model、View、Template)モデル
1.2 最小限のアプリを作成する
1.3 問い合わせフォームを作成する
1.4 クッキー(Cookie)
1.5 セッション
1.6 レスポンス
第2章 データベースを利用したアプリを作る
2.1 ディレクトリ構成
2.2 アプリを起動する―Blueprintの利用
2.3 SQLAlchemyをセットアップする
2,4 データベースを操作する
2.5 データベースを使ったCRUDアプリを作成する
2.6 テンプレートの共通化と継承
2.7 コンフィグを設定する
第3章 認証機能を作る
3.1 作成する認証機能とディレクトリ構成
3.2 アプリに認証機能を登録する
3.3 サインアップ機能を作成する
3.4 ログイン機能を作成する
3.5 ログアウト機能を作成する
■第2部 Flask実践(1) 物体検知アプリの開発
第4章 アプリの仕様と準備
4.1 物体検知アプリの仕様
4.2 ディレクトリ構成
4.3 物体検知アプリを登録する
第5章 画像一覧画面を作る
5.1 UserImageモデルを作成する
5.2 画像一覧画面のエンドポイントを作成する
5.3 画像一覧画面のテンプレートを作成する
5.4 SQLAlchemyのテーブル結合とリレーションシップ
第6章 サインアップとログインの画面を作る
6.1 サインアップ画面のエンドポイントを更新する
6.2 共通ヘッダを作成する
6.3 サインアップ画面のテンプレートを更新する
6.4 ログイン画面のエンドポイントを更新する
6.5 ログイン画面のテンプレートを更新する
6.6 サインアップ/ログイン画面の動作を確認する
第7章 画像アップロード画面を作る
7.1 画像アップロード先を指定する
7.2 画像を表示するエンドポイントを作成する
7.3 画像一覧画面に画像アップロード画面への導線と画像一覧を追加する
7.4 画像アップロード画面のフォームクラスを作成する
7.5 画像アップロード画面のエンドポイントを作成する
7.6 画像アップロード画面のテンプレートを作成する
7.7 画像アップロード画面の動作を確認する
第8章 物体検知機能を作る
8.1 UserImageTagsモデルを作成する
8.2 物体検知機能のフォームクラスを作成する
8.3 物体検知機能のライブラリをセットアップする
8.4 物体検知機能のエンドポイントを作成する
8.5 画像一覧画面にタグ情報を表示する
8.6 画像一覧画面に[検知]ボタンとタグ情報を表示する
8.7 物体検知機能の動作を確認する
8.8 画像削除機能を作成する
第9章 検索機能を作る
9.1 画像検索機能のエンドポイントを作成する
9.2 画像検索機能のテンプレートを作成する
9.3 画像検索機能の動作を確認する
第10章 カスタムエラー画面を作る
10.1 カスタムエラー画面のエンドポイントを作成する
10.2 カスタムエラー画面のテンプレートを作成する
10.3 カスタムエラー画面の表示を確認する
第11章 ユニットテストを作る
11.1 pytestを使ってみる―pytestの基礎
11.2 pytestのフィクスチャ
11.3 物体検知アプリのテストを作成する
■第3部 Flask実践(2)物体検知機能のAPI化/デプロイメント
第12章 Web APIの概要
12.1 World Wide Web(WWW)とAPIの意味
12.2 リソースの場所を示すURIの役割
12.3 HTTPメソッドによるリソースのCRUD操作
第13章 物体検知APIの仕様
13.1 物体検知APIの処理の流れ
13.2 PyTorchのインストールと学習済みモデルの保存
第14章 物体検知APIの実装
14.1 物体検知APIのディレクトリ構成とモジュール
14.2 実装の準備
14.3 [実装1]API起動コードの実装
14.4 [実装2]データの準備/前処理/後処理コードの実装
14.5 [実装3]学習済みモデルの実行コードの実装
14.6 [実装4]ルーティングの実装
第15章 物体検知アプリのデプロイメント
15.1 Dockerの概要
15.2 Cloud Runの概要
15.3 Dockerの利用準備
15.4 Cloud Runの利用準備
15.5 [手順1]Google Cloudのconfiguraionの初期設定
15.6 [手順2]Dockerfileの作成
15.7 [手順3]Dockerイメージをビルド
15.8 [手順4]DockerイメージをGCRにプッシュ
15.9 [手順5]Cloud Runにデプロイ
■第4部 機械学習APIの開発
第16章 機械学習の概要
16.1 機械学習にまつわる概念
16.2 機械学習で扱うデータ
16.3 機械学習が扱うタスク
16.4 数式とコードによるアルゴリズムの表現方法
16.5 機械学習で利用するPythonライブラリ
16.6 Pythonライブラリによるロジスティック回帰の表現方法
第17章 機械学習APIの開発工程と実践
17.1 最適な機械学習アルゴリズム/モデルの選定
17.2 機械学習アルゴリズム/モデルの実装
17.3 機械学習APIの仕様
17.4 開発の準備
17.5 [実装工程1]分析コードをプロダクションコードにする
17.6 [実装工程2]プロダクションコードをAPIにする
17.7 正常動作の挙動確認
17.8 [Future Work]機械学習APIから機械学習基盤とMLOpsへ
wwb さん
2022-04-15
割と説明が淡々としている印象があり、webの知識はある程度ないと難しそう。 日本語で書かれたFlaskの本は多くないので、貴重な一冊だと思う。