【Raspberry pi 3B】Webサーバ構築

前回「dnsmasq + hostapd(※1)」ソフトウェアを用いて、ラズベリーパイにアクセスポイントを構築しました。
今回「Flask」を用いて、ラズベリーパイにWebサーバを構築していきます。
※1:概要欄にリンクを張っています。



概要欄

◇ 【Raspberry pi 3B】アクセスポイント構築

ソフトウェア

Flask
Pythonで書かれた小規模向けのWebアプリケーションフレームワーク

pip
Pythonのパッケージ管理ソフトウェア

構成図

デバイス情報

・ノートPC(OS: Windows11)
・Raspberry Pi 3 model B(OS: Raspberry pi OS)
 ※マイクロSD 128GB(32GBでも可)
・無線LANアダプタ(WN-G300UA)
・ルータ
・LANケーブル

Webサーバ構築

pipソフトウェア確認

◇ バージョン確認
pip --version ; pip3 --version

◇ pipソフトウェアをインストール
※インストール済みなら飛ばす
apt update
apt -y install pip
pip --version ; pip3 --version


Flask導入

◇ Flaskパッケージ確認
pip list | grep 'flask'

◇ Flaskパッケージをインストール
※インストール済みなら飛ばす
pip install flask
pip list | grep 'flask'

◇ Flask用のディレクトリを作成
mkdir -p /python/www

◇ 作成したディレクトリに移動
cd /python/www

◇ templates ディレクトリを作成
※ここにHTMLファイルを配置する
mkdir /python/www/templates
ls -ld /python/www/templates

◇ THMLファイルを配置
cd /python/www/templates
vim test.html

<!DOCKTYPE html>
<heml lang="ja">
    <head>
        <meta charset="UTF-8">
        <title>ログイン画面</title>
    </head>
    <body>
        <h1>テスト</h1>
    </body>
</html>

◇ main ファイルを作成
cd /python/www/ ; ls -l
touch main.py __init__.py ; ls -l

◇ mainファイルを編集
vim main.py

from flask import Flask, render_template

app    = Flask(__name__)
ipaddr = '192.168.76.250'
port   = 80

##################################################
# 以下からHTTPメソッド(GET、POST)の処理を記載
@app.route('/', methods=["GET"])
def web_test():
	return render_template("test.html")
##################################################

if __name__ == '__main__':
	app.run(host=ipaddr, port=port)


◇ Flaskを実行
python3 main.py


サイトにアクセス

◇ 確認事項
・アクセスポイントに付与されたIPアドレスになってる
・GETメソッドでブラウザからサイト閲覧できる