はじめに
前回の記事では、Flask + Nginx を使った自宅Webサーバの構成概要と、実際に公開しているページの全体像を紹介しました。
今回はシリーズ第2回として、Flaskを使ったWebアプリの最小構成を作成し、ローカル環境で動作確認を行うところまでを解説します。
FlaskはPython製の軽量なWebフレームワークで、手軽にWebアプリを構築できるのが特徴です。
補足:このシリーズは自分の学習記録・ポートフォリオとしての公開を兼ねており、段階的に構築手順をまとめています。
前回の第1回の記事はこちら
Flaskの導入手順
まずはPython環境を用意し、Flaskをインストールします。
今回はシンプルにグローバル環境でインストールしていますが、プロジェクトごとに仮想環境(venv)を使うのもおすすめです。
Flaskのインストール
pip3 install flask
※ Python version:3.10.12 の場合
最小構成のFlask
Flaskのインストールが完了したら、早速最小構成のアプリを作成して動作確認してみます。
まずは以下のような app.py
ファイルを作成します。
from flask import Flask
# インスタンスの生成
app = Flask(__name__)
# ルートURL(/)にアクセスしたときに呼び出される関数を定義
@app.route('/')
def home():
return "Welcome to Qiita!"
if __name__ == '__main__':
app.run(debug=True, host="0.0.0.0", port=5000)
# debug=true デバッグモードを有効化にする設定
# サーバー起動している時にapp.pyやhtmlファイルの変更をしたときに自動的にロードされる
# 開発環境ではtrue、実環境ではセキュリティの理由でflaseに変更する
# host="0.0.0.0" 外部からアクセス可能にする設定
# 0.0.0.0はすべてのNIC(ネットワークインターフェス)で待ち受ける
# ローカル環境のみ接続可能にしたい場合は"localhost"に変更
# 今回はNginxからアクセスさせる仕組みのため、0.0.0.0に設定
# port=5000 Flaskが待ち受けるポート番号の設定
# 後のNginxとの連携でリバースプロキシ先となるため、ポート番号をメモしておく
app.py
が用意出来れば準備は完了です。
ローカルでの動作確認
app.py
の準備が出来たら、以下のコマンドでFlaskアプリを起動してみます。
起動に関してはVScodeやCursorの様なプログラミングに特化しているエディタであれば、ファイルを右クリック「ターミナルで実行」で簡単に実行できます。
python3 app.py
# ※起動できない場合はパスを指定してみる。
# 例:python3 ./app.py
起動すると以下のログが表示されます。
* Serving Flask app 'app'
* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:5000
* Running on http://192.168.5.5:5000
Press CTRL+C to quit
* Restarting with stat
* Debugger is active!
* Debugger PIN: 594-652-10
この状態で、Webブラウザを開いて http://localhost:5000
にアクセスすると、以下の画面が表示されるはずです。
※画像では http://127.0.0.1:5000
と入力していますが、同じ意味なので説明は割愛
Welcome to Qiita!
注意点
- host="0.0.0.0" にしているため、同一LAN内の他のPCやスマホから http://[サーバのIPアドレス]:5000 でもアクセス可能です。
- ファイアウォール(UFWなど)でポート5000がブロックされていると、外部からのアクセスはできません(今回はローカル確認が目的のため問題ありません)。
- debug=True の場合、コードを編集するたびに自動で再起動されます(開発中は便利ですが、本番環境では必ず False にしてください)。
まとめ
今回は、Pythonの軽量Webフレームワークである Flask を使って、
最小構成のWebアプリを作成し、ローカル環境での動作確認までを行いました。
- Flaskの導入
-
app.py
の作成と基本的な構文 -
localhost:5000
でのWebブラウザ表示 -
host="0.0.0.0"
の意味や、debugモードの注意点
など、Flaskの基本的な使い方と開発環境での確認について触れてみました。
※ 今回は開発用のサーバ(app.run()
)で動作確認を行っていますが、
本番環境では Gunicorn などの WSGIサーバと連携するのが一般的です。
そのあたりは次回以降で解説予定です。
次回予告|【Nginx編】Flaskアプリを外部公開する方法
次回は、今回作成したFlaskアプリを Nginxと連携させて外部公開する方法 を紹介します。
- リバースプロキシの基本
- Nginxのインストールと設定ファイル
- ポートフォワーディング・UFWの制限緩和
など、インターネットからアクセスできるWebサービスとして公開するための構築ステップを投稿予定です。
また、GitHubに誰でも試せるようにコードを公開しています。
今回のapp.py
ファイルを投稿してみたので、良ければ見てみてください
URL : https://github.com/Termnix-IT/Python_Flask_Web_Basic