下面的代码要求系统输入每个已填充并显示的复选框。 显示页面实际上显示了新注册的行,但是当我在终端上进行相同的代码SELECT*FROM时,系统不显示任何行。数据库看起来是临时的,因为当我重新启动flask应用程序时,新行会消失。在
from flask import Flask, render_template, request
import pymysql
db = pymysql.connect("127.0.0.1", "root", "toor", "msg_test")
app = Flask(__name__)
app.config['SECRET_KEY'] = '31e1326344483068'
@app.route('/preenche', methods=['POST'])
def selecionarExames():
if request.method == 'POST':
cursor = db.cursor()
for t in request.form.getlist('check'):
sql = "INSERT INTO exames_realizados (nomeExame, valores) VALUES ('{}', 0)".format(t)
cursor.execute(sql)
v = "SELECT * FROM exames_realizados"
cursor.execute(v)
results = cursor.fetchall()
return render_template('preenche.html', results=results)
if __name__ == '__main__':
app.run(debug=True)
首先,不要设置查询的字符串格式-您正在向SQL injection attacks打开代码。相反,请正确地参数化查询:
注意查询参数是如何单独传递的,以及
.executemany()
的用法。在至于insert查询的结果,请提交事务以持久化更改:
^{pr2}$相关问题 更多 >
编程相关推荐