sql-gen / database_selection.py
h3110Fr13nd
initial
ba07482
from flask import Flask, render_template, request
import pandas as pd
import sqlite3
import os
app = Flask(__name__)
UPLOAD_FOLDER = 'uploads'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
# Create the 'uploads' directory if it doesn't exist
if not os.path.exists(UPLOAD_FOLDER):
os.makedirs(UPLOAD_FOLDER)
# Initialize history list to store query history
history = []
def run_sql_query(csv_files, sql_query):
conn = sqlite3.connect(':memory:')
for file_path in csv_files:
df_name = os.path.splitext(os.path.basename(file_path))[0] # Extract file name without extension
df = pd.read_csv(file_path)
df.to_sql(df_name, conn, index=False)
result = pd.read_sql_query(sql_query, con=conn)
return result.to_html()
@app.route('/', methods=['GET', 'POST'])
def index():
result = None
query = None
if request.method == 'POST':
uploaded_files = request.files.getlist('file')
csv_files = []
for file in uploaded_files:
if file.filename != '':
file_path = os.path.join(app.config['UPLOAD_FOLDER'], file.filename)
file.save(file_path)
csv_files.append(file_path)
sql_query = request.form['sql_query']
query = sql_query
# Execute SQL query and store result in history
result = run_sql_query(csv_files, sql_query)
history.append({'query': sql_query, 'result': result})
return render_template('database_selection_index.html', result=result, query=query, history=history)
if __name__ == '__main__':
app.run(debug=True)