39 lines
1.0 KiB
Python
39 lines
1.0 KiB
Python
from flask import Flask, render_template
|
|
import sqlite3
|
|
import pandas as pd
|
|
from config import DB_PATH
|
|
from datetime import datetime
|
|
|
|
app = Flask(__name__)
|
|
|
|
def load_data():
|
|
# Connect to SQLite database
|
|
conn = sqlite3.connect(DB_PATH)
|
|
query = "SELECT * FROM speed_tests"
|
|
df = pd.read_sql(query, conn)
|
|
conn.close()
|
|
return df
|
|
|
|
@app.route('/')
|
|
def index():
|
|
df = load_data()
|
|
|
|
|
|
|
|
# Convert timestamps to human-readable format
|
|
df['datetime'] = pd.to_datetime(df['timestamp'], unit='s')
|
|
# Suppose your DataFrame is called `df`
|
|
df["timestamp"] = df["timestamp"].apply(lambda ts: datetime.fromtimestamp(ts).strftime("%Y-%m-%d %H:%M:%S"))
|
|
|
|
# Collect the data for charts
|
|
chart_data = {
|
|
"times": df['datetime'].dt.strftime('%Y-%m-%d %H:%M:%S').tolist(),
|
|
"down_90th": df['down_90th'].tolist(),
|
|
"up_90th": df['up_90th'].tolist()
|
|
}
|
|
|
|
return render_template('index.html', data=df.to_dict(orient='records'), chart_data=chart_data)
|
|
|
|
if __name__ == '__main__':
|
|
app.run(debug=True)
|