from db_connect import DatabaseConnect from flask import Flask, abort, session from jinja2 import Template import plotly.express as px from plotly.subplots import make_subplots import plotly.graph_objects as go import logging from os import sep app = Flask(__name__) db = DatabaseConnect() @app.route("/") def index(): avail_rooms = db.view_valid_rooms(1) outtext = "

Available rooms

" return outtext @app.route('/room/') def room_page(room_name=None): if not db.user_has_room_perms(1,room_name): abort(403) sensor_list = db.get_sensors_in_room(room_name) fig = make_subplots(rows=1, cols=len(sensor_list)) for idx, sensorID in enumerate(sensor_list): lst = [x for x in db.get_sensor_data(sensorID)] fig.add_trace( go.Scatter( x = [x[0] for x in lst], y = [x[1] for x in lst], name=db.get_sensor_type(sensorID)), row = 1, col = idx + 1 ) fig.update_layout(title_text=f"Available Devices in room {room_name}:") template_path = f'web{sep}room_template.html' px_jinja_data = {"fig":fig.to_html(full_html=False)} with open(template_path,'r') as template_file: j2_template = Template(template_file.read()) return j2_template.render(px_jinja_data)