【发布时间】:2020-06-13 08:20:52
【问题描述】:
我想在我的数据库中从用户个人资料页面to description column 添加description text,但是当我提交表单时没有任何反应,并且此列仍然为空。
登录后我可以在个人资料页面上获取id和email,但无法在我的profile method上获取description form
login method:
@app.route('/', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
email = request.form['email']
password = request.form['password']
cur = mysql.connection.cursor()
cur.execute('SELECT * FROM users.data WHERE email = %s AND password = %s',
(email, password))
account = cur.fetchone()
if account:
session['loggedin'] = True
session['id'] = account[0]
session['email'] = account[3]
return redirect(url_for('profile'))
else:
return render_template('error.html')
return render_template('login.html')
profile method:
@app.route('/profile', methods=['GET','POST'])
def profile():
if 'loggedin' in session:
return render_template('profile.html', id=session['id'], email=session['email'])
if request.method == 'POST':
description = request.form['text']
cur = mysql.connection.cursor()
cur.execute('UPDATE users.data SET description = %s WHERE id = ?', (description, session['id']))
mysql.connection.commit()
cur.close()
return render_template('profile.html', id=session['id'], email=session['email'], description=description)
else:
return 'NO'
return redirect(url_for('login'))
profile.html:
your session id is: {{ id }}
your session email is: {{ email }}
your session symptom is: {{ description }}
<form action="" method="post">
<input type="text" name="text" class="form-control" placeholder="description">
<button class="btn btn-primary">Add</button>
</form>
请帮忙。
【问题讨论】:
-
我想你可能想要
cur.execute('UPDATE users.data SET description = %s WHERE id = %s', (description, session['id']))注意%s,而不是? -
@Nick,不幸的是,这没有帮助
-
你确定这行
description = request.form['text']正在正确获取数据吗? -
@FooL,我在控制台中使用
print(description)进行了检查,但没有任何反应。那么,获取数据是不正确的,但问题是什么?为什么我收不到? -
@abby 尝试将
button改为<input type="submit"?
标签: html mysql python-3.x flask