Flask mysql 数据替换。 (更新声明)
Flask mysql data replacement. (UPDATE Statement)
问题是这样的:命令运行时,没有替换数据库中的数据
翻了无数页也没找到解决问题的方法。
但是没有报错
脚本:
@app.route('/profil', methods=['GET', 'POST'])
def profil():
if 'loggedin' in session:
cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
cursor.execute('SELECT * FROM users WHERE id = %s', (session['id'],))
account = cursor.fetchone()
if request.method == 'POST':
file = request.files['file']
filename = secure_filename(file.filename)
path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
file.save(path)
cursor.execute('UPDATE users SET file_name = %s WHERE id = %s', (filename,account['id'],))
return filename
return render_template('profil.html', account=account)
return redirect(url_for('login'))```
进行更新时,您需要使用 .commit
:
显式提交
cnx = mysql.connector.connect(...)
cursor = cnx.cursor()
cursor.execute('UPDATE .....')
cnx.commit()
https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlconnection-commit.html
您可以使用 cnx.autocommit = True
自动提交。
问题是这样的:命令运行时,没有替换数据库中的数据
翻了无数页也没找到解决问题的方法。
但是没有报错
脚本:
@app.route('/profil', methods=['GET', 'POST'])
def profil():
if 'loggedin' in session:
cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
cursor.execute('SELECT * FROM users WHERE id = %s', (session['id'],))
account = cursor.fetchone()
if request.method == 'POST':
file = request.files['file']
filename = secure_filename(file.filename)
path = os.path.join(app.config['UPLOAD_FOLDER'], filename)
file.save(path)
cursor.execute('UPDATE users SET file_name = %s WHERE id = %s', (filename,account['id'],))
return filename
return render_template('profil.html', account=account)
return redirect(url_for('login'))```
进行更新时,您需要使用 .commit
:
cnx = mysql.connector.connect(...)
cursor = cnx.cursor()
cursor.execute('UPDATE .....')
cnx.commit()
https://dev.mysql.com/doc/connector-python/en/connector-python-api-mysqlconnection-commit.html
您可以使用 cnx.autocommit = True
自动提交。