萌新第一次用python,虽然只是简单的查询页面,但是搞了大概3天 - -#
一共就两个文件:
后端:get_student.py
from flask import Flask, render_template, request, jsonify, make_response
import mysql.connector
app = Flask(__name__)
@app.route('/sql_check/templates', methods=["GET", 'POST'])
def index_html():
return render_template('sql_check.html')
@app.route('/sql_check', methods=['POST'])
def execute_sql():
mydb = mysql.connector.connect(
host="localhost",
user="",
password="",
database="",
)
query = request.form
keys = list(query.keys())
keys = ''.join(keys)
# 获取游标对象
cursor = mydb.cursor()
try:
# 执行 SQL 语句
cursor.execute(keys)
# 判断查询结果类型
if cursor.description is not None:
# 处理 SELECT 查询结果
results = cursor.fetchall()
# response = make_response(results)
for i in results:
print(i)
return ", ".join(i)
else:
# 处理其他类型的 SQL 查询语句结果(如 INSERT、UPDATE、DELETE)
mydb.commit()
return jsonify({'success': True, 'results': None})
except mysql.connector.Error as err:
# 处理查询错误
return jsonify({'success': False, 'error': str(err)})
if __name__ == '__main__':
app.run(debug=True)
前端:sql_check.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>SQL Syntax Checker</title>
</head>
<body>
<h1>SQL Syntax Checker</h1>
<form>
<label for="sqlInput">Enter your SQL query:</label><br>
<textarea id="sqlInput" name="sqlInput" rows="10" cols="80"></textarea><br>
<button type="button" onclick="checkSQL()">Check Syntax</button>
</form>
<h2>Result:</h2>
<div id="results"></div>
<script>
function checkSQL() {
var sql = document.getElementById("sqlInput").value;
var xhr = new XMLHttpRequest();
xhr.open("POST", "/sql_check", true);
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.onreadystatechange = function() {
if (this.readyState == XMLHttpRequest.DONE && this.status == 200) {
document.getElementById("results").innerHTML = this.responseText;
alert(this.responseText);
}
};
xhr.send(encodeURIComponent(sql));
}
</script>
</body>
</html>
部分代码是AI生成的,可能看着有点不和谐。
页面展示:
将查询结果list元组转为了字符串输出,剩余的增删改功能等以后有空再做吧。