from flask import Flask, request, Response import pyodbc import pandas as pd from collections import defaultdict import os app = Flask(__name__) CONN = False STYLE = """ """ @app.route("/") def tables(): cursor = CONN.cursor() tables = [] for row in cursor.tables(): if row.table_type == "TABLE": tables.append(row.table_name) html = "

Tables

" return html @app.route("/table/") def table(name): f = request.args.get("f") v = request.args.get("v") query = f"SELECT * FROM [{name}]" if f and v: query += f"WHERE `{f}` = ?" df = pd.read_sql(query, CONN, params=[v]) else: df = pd.read_sql(query, CONN) def gen(): yield STYLE yield "" yield "" + "".join( f"" for c in df.columns ) + "" for row in df.itertuples(index=False): yield "" + "".join( f"" for v in row ) + "" yield "
{c}
{v}
" return Response(gen(), mimetype="text/html") if len(sys.argv) > 1: CONN = pyodbc.connect(f"{sys.argv[1]}") app.run(host="0.0.0.0", port=5000, debug=True, use_reloader=False) else: print("You need to supply a pyodbc connection string")