webuiの実装はじめ

This commit is contained in:
suti7yk5032 2024-11-09 22:13:06 +09:00
parent 49a182b62b
commit 783b4eb385
4 changed files with 95 additions and 2 deletions

View file

@ -1,7 +1,7 @@
import psycopg2 import psycopg2
import os import os
import json import json
from flask import Flask, request, jsonify, render_template from flask import Flask, request, jsonify, render_template, redirect
import uuid import uuid
import string import string
import random import random
@ -337,7 +337,12 @@ class Auth():
finally: finally:
cursor.close() cursor.close()
def get_pc_list(self, **kwargs):
cursor = self.db.cursor()
cursor.execute('SELECT pc_number, alt_name, master_password FROM pc_list ORDER BY pc_number')
pc_list = cursor.fetchall()
return pc_list
app = Flask(__name__, static_folder="./resource/") app = Flask(__name__, static_folder="./resource/")
auth = Auth(server_config["db"]["host"], server_config["db"]["db_name"], server_config["db"]["port"], server_config["db"]["username"], server_config["db"]["password"]) auth = Auth(server_config["db"]["host"], server_config["db"]["db_name"], server_config["db"]["port"], server_config["db"]["username"], server_config["db"]["password"])
@ -479,6 +484,33 @@ def device_register():
else: else:
return jsonify({'message': 'damedesu'}), 401 return jsonify({'message': 'damedesu'}), 401
@app.route('/')
def index():
return redirect('/admin')
@app.route('/admin')
def admin():
return render_template('admin.html')
@app.route('/admin/pc_list')
def admin_pclist():
table = '<table><thead><tr><th>PC番号</th><th>ニックネーム</th><th>マスターパスワード</th></tr></thead><tbody>'
pc_list = auth.get_pc_list()
for i in pc_list:
pc_number = i[0]
alt_name = i[1]
if alt_name == None:
alt_name = '--未登録--'
master_password = i[2]
if master_password == None:
master_password = '--未登録--'
table += f'<tr><td>{pc_number}</td><td>{alt_name}</td><td>{master_password}</td></tr>'
table += '</tbody></table>'
return render_template('pc_list.html', pc_list_table=table)
if __name__ == '__main__': if __name__ == '__main__':
app.run(host="0.0.0.0", port=5000, debug=False) app.run(host="0.0.0.0", port=5000, debug=False)

13
resource/css/admin.css Normal file
View file

@ -0,0 +1,13 @@
#sidebar {
height: 100%;
width: 30%;
background-color: aliceblue;
display: flex;
justify-content: center;
}
#general {
display: flex;
float: left;
}

24
templates/admin.html Normal file
View file

@ -0,0 +1,24 @@
<html>
<head>
<meta charset="UTF-8">
<title>Dislocker Admin</title>
<link rel="stylesheet" href="{{url_for('static', filename='/css/admin.css')}}">
</head>
<body>
<div id="general">
<div id="sidebar">
<button onclick="location.href='/admin'" type="button" style="height: auto;" >
<img src="{{url_for('static', filename='/icon/png/64.png')}}" alt="Home" style="width: 64px; height: 64px;">
</button>
</div>
<div id="main">
<h1>Dislocker ADMIN</h1>
<button onclick="location.href='/admin/pc_list'">PCリスト</button>
</div>
</div>
</body>
</html>

24
templates/pc_list.html Normal file
View file

@ -0,0 +1,24 @@
<html>
<head>
<meta charset="UTF-8">
<title>Dislocker Admin | PC List</title>
<link rel="stylesheet" href="{{url_for('static', filename='/css/admin.css')}}">
</head>
<body>
<div id="general">
<div id="sidebar">
<button onclick="location.href='/admin'" type="button" style="height: auto;">
<img src="{{url_for('static', filename='/icon/png/64.png')}}" alt="Home" style="width: 64px; height: 64px;">
</button>
</div>
<div id="main">
<h1>PCリストあるよ(笑)</h1>
{{pc_list_table | safe}}
</div>
</div>
</body>
</html>