Python Flask 入門本を執筆し、2022年1月24日翔泳社より発売開始されました。本記事では、簡単に執筆の動機や書籍の内容を紹介します。
Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方
- 佐藤 昌基,平田 哲也,寺田 学
- 翔泳社
- 価格¥3,740(2022/05/04 01:04時点)
- 発売日2022/01/24
- 商品ランキング6,714位
執筆の動機
自分が Python で Web をはじめる際 Django で挫折し、Flask でスモールにはじめてみたら色々理解が深まったという経験から来ています。また、もくもく会などで自分みたいな人はよくみたし、Flask は Flask で Blueprint を使って認証機能を作るあたりのところまではいけるけど、その先のベスプラがよく分からん、となり詰まる経験もありました。そのため、自分なりに考えたり調べたりしたプラクティスの一例を紹介することで、そういう人が少しでも減らせたらいいなと思いではじめました。
対象読者と基本コンセプト
- Python のことはある程度分かるが Web のことをあまり知らないエンジニア
- Web アプリ開発の延長で機械学習に興味のあるエンジニア
- データサイエンティストや機械学習エンジニアで Web を使ってデータを表現したいエンジニア
Flask 入門・実践を通して Web アプリ開発の流れを解説し、Flask FW のベストプラクティスを提示します。サンプルアプリを物体検知アプリとし、後半では機械学習の概要から機械学習APIの開発工程を実践形式で解説します。
目次
第0部 イントロダクション
- Flaskの概要と環境構築
第1部 Flask入門
- 最小限のアプリを作る―Flaskの基礎
- データベースを利用したアプリを作る
- 認証機能を追加する
第2部[Flask実践1]物体検知アプリの開発
- アプリの仕様と準備
- 画像一覧画面を作る
- サインアップとログインの画面を作る
- 画像アップロード画面を作る
- 物体検知機能を作る
- 検索機能を作る
- カスタムエラー画面を作る
- ユニットテストを作る
第3部[Flask実践2]物体検知機能のAPI化/デプロイメント
- Web APIの概要
- 物体検知APIの仕様
- 物体検知APIの実装
- 物体検知アプリのデプロイメント
第4部機械学習APIの開発
- 機械学習の概要
- 機械学習APIの開発工程と実践
内容紹介
第0部 イントロダクション
なぜ Flask を使うのかや Python Web フレームワークの比較をはじめ、Python インストールから VSCode セットアップなど環境構築を行います。
第1部 Flask入門
最小限のアプリ、問い合わせフォームを作成しながら Flask の基礎を解説します。その後、データベースを利用した簡単な CRUD の実装を行い、そこへ認証機能(サインアップ・ログイン)を追加します。流れの中で Blueprint の使い方や基本的な SQLAlchemy の使い方についても解説します。
第2部[Flask実践1]物体検知アプリの開発
第1部で作成した認証機能を一部利用しながら、物体検知アプリを章ごとに少しずつ作り上げていきます。画面の装飾には bootstrap を利用し下記のようなアプリを作成します。作成するアプリは、サインアップ(またはログイン)し、画像アップロード後、検知ボタンをクリックすると画像に対して物体検知を行い、画像に枠をつけ物体のタグを払い出すというものです。払い出されたタグで、画像の検索ができます。物体検知は PyTorch を使い学習済みモデルを利用します。
第3部[Flask実践2]物体検知機能のAPI化/デプロイメント
物体検知機能をAPI化しデプロイまで行います。Web API の概要をはじめ、APIの実装やデータの準備/前処理/後処理などを行い、最終的には Docker を 利用して GCP 環境へデプロイを行います。
第4部機械学習APIの開発
第3部まででサンプルアプリの実践は終え、第4部は機械学習にフォーカスした部です。共著者である平田さんの講演である「How to Transform Research Oriented Code into Machine Learning APIs w/ Python」を詳細に解説した内容になります。機械学習プロジェクトを進めていく上で何が必要か、アプリケーションにする上で何を意識すべきかを実践を通して解説しています。
さいごに
最終的には Flask ながら 500ページ近い厚めの一冊となりましたが、本書を通じて少しでも Python Web 入門者の手助けになればよいなと思います。