Flaskを使ったIoTデバイスを管理するWebアプリのサンプルです。 Bootstrap 5.3を使ってそれっぽくしてます。 Flask-Login/Flask-JWT-Extendedを使ってそれっぽくセッション管理などを行っています。 SQLAlchemyを使ったので、将来的にちゃんとしたRDBに比較的に楽に移行することができます。
Ubuntu 22.04/ Raspberry Pi OS 2024-03-15で確認しています。
git clone https://github.com/kobayutapon/flask-webapp-sample.git
cd flask-webapp-sample
pip3 install -r requirements.txt
python3 app.py
実行するとhttp://(動作しているマシンのIP):5000 をブラウザで読み込ませると動作が確認できます。
ユーザー名、パスワードを入力し、Loginをクリックするとダッシュボード画面に遷移します。 入力フォームをPOSTし、その応答にアクセストーケンを取得します。それを用いて他のページのアクセス権の制御を行っています。 Sign Upをクリックするとユーザー登録画面に遷移します。
ログイン画面と同じなので割愛
登録されているデバイスの一覧を表示。 右上にログインユーザー名が表示されていて、ここをクリックするとパスワード変更やサインアウトなどができます。 デバイスの右側のメニューでデバイスに対して詳細見たり設定ができます。
あとはコード見ながら適宜変更してください。
あくまでサンプルなのでご利用は自己責任でお願いします。 ライセンスはMITで公開するのでご利用はご自由に。