Python FlaskによるWebアプリ開発入門にトライしてみた!(デプロイで苦戦中)
・なぜこの入門書を選んだのか?
Pythonを使ってWebアプリケーションを開発してみたいと思った。具体的には、Pythonってデータ分析や機械学習などによく使っている言語だとイメージしていたため、Webアプリケーション開発では、どのように使うんだろうと興味が湧きました。
Flaskってなんそれ? Pythonは知っているけど、Flaskってなに?そのようなレベルの僕でもチャレンジしてみたいと思いました。
Web API化、デプロイまで学べるのはとても嬉しいなと思いました。その辺の知識ややり方がどこから手をつけるべきが悩んでいたので、少しでも吸収できればと思いました。
機械学習APIの開発もあるやん。単純だが面白そうだと思いました。チャレンジしてみよ!
・Flaskって?
Python製のWebフレームワーク
データベース機能やメール機能など必要に応じて拡張機能を利用できる。
小さい規模から大きい規模まで、Webアプリ開発できる。
2000年から2010年代までのWeb開発では、必要な機能が全て揃ったフルスタックフレームワークが人気やったらしい。現在は、フルスタックではなく、FlaskのようなマイクロWebフレームワークが、必要な時に拡張機能を使って、やりたいことを実現しようぜって、選択肢の一つとしてあるそうです。
・Flask以外にもPython製Webフレームワークあるらしいぜ
Django・・・Python製のWebフレームワークで中規模以上の開発によく使用されるフルスタックフレームワークらしい。一番有名だってよ...書店にDjangoの本がいくつかあったので、また確認してみます...
Bottle・・・Flaskよりも「シンプル」「速い」「軽い」でマイクロWebフレームワークとのこと。ToDoアプリなどちょっとしたアプリを作るのに向いているとのこと。聞いたことない...
FastAPI・・・ちょっとしたAPIを開発するのに向いているフレームワークとのこと。聞いたことあるが、どこで聞いたか忘れました...
他にもあるらしいよ↓↓↓
参考【2023年トレンド】Pythonフレームワーク8選!Webアプリ開発向きのものも紹介!
https://mid-works.com/columns/freelance-career/engineers/1114804
・第1部(Flask入門)1日あればできると思います。
Flaskを使って最小限のアプリを作成する
問い合わせフォームを作成する
データベースを利用したアプリを作る(データベースを操作)
認証機能を作る(サインアップ、ログイン、ログアウトなど)
・第2部(物体検知アプリの開発)3日くらいあればできると思います。
画像一覧画面、アップロード画面、検知画面などを作成
PyTorchという機械学習ライブラリを利用
検知した画像に犬、人、乗り物などタグ情報を表示する
タグ情報に一致した画像を表示させる検索機能を作る
アプリエラー画面を作成する
ユニットテストを作る(Pytestを用いる)
・第3部(物体検知機能のAPI化・デプロイメント)2日くらいあればできると思います。
Web APIの概要説明
物体検知APIの仕様説明(処理の流れなど)
物体検知APIの実装
物体検知アプリのデプロイメント(Docker、Google Cloudを用いる)
・第4部(機械学習APIの開発)
機械学習の概要説明
機械学習APIの開発工程と実践(まだできてない)
・僕が息詰まったところ
第3部の15章で、物体検知アプリをWeb上で公開するため、Dockerfileという物体検知アプリを使用するのに必要なPythonのライブラリやファイルを作成して、ビルドしたDockerイメージをGoogle Cloud PlatformのContainer Registoryにプッシュできず、現在も苦闘中です...
このContainer RegistoryにDockerイメージをプッシュして、デプロイに成功すれば、皆様に作成した物体検知アプリを公開できると思われます。
・僕の認識レベル
Docker・・・仮想環境を作るための設定ファイルをこのDockerっていうものを実行することで作成できて、かつクラウドサービスに設定ファイルを配置できます。
Google Cloud・・・いろんなサービスがあります。AmazonにもクラウドサービスAWSがある。これに近い。
Web API・・・Web上でHTTPメソッドを使ってアプリを動かしたり、ファイルを転送したりなどいろんなやりとりができるもの
#Python #Flask