0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Flask編】Pythonで簡単Webアプリを立ち上げてみた|Nginxとの連携準備【第2回】

Posted at

はじめに

前回の記事では、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!

image.png

注意点

  • 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

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?