住所変換機はChatGPTの勧めでPythonを使って開発している。
環境を推薦してもらう時、FlaskとGunicorn、Enveなどの聞いたこともない技術を利用するように提案され、言われたままにインストールして設定したが、意味がよくわかっていない。
それぞれ具体的に知りたいと思う。
要約すると、
- FlaskはPython用のフレームワークだ。
- GunicornはWSGI HTTPサーバーという、一種のサーバーだ。
ということがわかる。
フレームワークは素のプログラム言語(例えばPython)を一から駆使してプログラムを作成する代わりに、基本的な機能とそれを実現するツールがあらかじめ用意された一種のプログラムで、それを利用すれば車輪の再発明をしなくて済むというメリットが有る。(素人理解で正確でないかもしれない)
一方WSGI HTTPサーバーはまったくの初耳。
Webサーバーと異なるPythonフレームワークの間での通信を標準化する仕組みだという。
そこで、Webサーバーとの違いが気になった。
回答が長いので重要な部分だけ抜粋する。
Webサーバーは静的なコンテンツを提供し、WSGI HTTPサーバーは、WebサーバーとPythonアプリの通信を仲介。上の図も合わせてみると仕組みがよくわかる。
そして上の図でわかるように、WSGI HTTPサーバーには、Gunicorn以外に、uWSGIというのもあるらしい。
念のために聞いてみよう。