* Add SQL query executor
* Move mermaid.min.js to static asset * Create templates for sql logic
This commit is contained in:
33
app.py
33
app.py
@@ -469,21 +469,26 @@ def delete_exercise(exercise_id):
|
||||
db.exercises.delete_exercise(exercise_id)
|
||||
return ""
|
||||
|
||||
@app.route("/sql_explorer", methods=['GET'])
|
||||
def sql_explorer():
|
||||
if htmx:
|
||||
return render_block(app.jinja_env, 'sql_explorer.html', 'content')
|
||||
return render_template('sql_explorer.html')
|
||||
|
||||
@app.route("/sql_query", methods=['POST'])
|
||||
def sql_query():
|
||||
query = request.form.get('query')
|
||||
(results, columns, error) = db.sql_explorer.execute_sql(query)
|
||||
|
||||
return render_template('partials/sql_explorer/sql_query.html', query=query, results=results, columns=columns, error=error)
|
||||
|
||||
|
||||
|
||||
@ app.route("/sql_schema", methods=['GET'])
|
||||
def get_sql_schema():
|
||||
schema_info = db.sql_viewer.get_schema_info()
|
||||
mermaid_code = db.sql_viewer.generate_mermaid_er(schema_info)
|
||||
html_content = f'''
|
||||
<div class="overflow-auto" style="max-height: 80vh;">
|
||||
<div class="mermaid" style="opacity: 0;"
|
||||
_="on load
|
||||
mermaid.init(undefined, this)
|
||||
set me.style.opacity to '1'">
|
||||
{mermaid_code}
|
||||
</div>
|
||||
</div>
|
||||
'''
|
||||
return html_content
|
||||
def sql_schema():
|
||||
schema_info = db.sql_explorer.get_schema_info()
|
||||
mermaid_code = db.sql_explorer.generate_mermaid_er(schema_info)
|
||||
return render_template('partials/sql_explorer/schema.html', mermaid_code=mermaid_code)
|
||||
|
||||
@app.teardown_appcontext
|
||||
def closeConnection(exception):
|
||||
|
||||
Reference in New Issue
Block a user