Добавление данных с формы в новоую колонку mysql
У меня страница логина пользователей. На ней есть формы ввода, с которых данные записываются в базу. После логина пользователь переходит на profile страницу. На ней я создал одну форму ввода для добавления описания, и колонку под него в бд, но с этой формы ичего не записывается.
app.py
@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')
@app.route('/profile', methods=['GET','POST'])
def profile():
if 'loggedin' in session:
print(session['id'])
print()
print(session['email'])
print()
return render_template('profile.html', id=session['id'], email=session['email'])
if request.method == 'POST':
id= session['id']
texts = request.form['text']
sql_update ="""UPDATE data
SET texts=?
WHERE url = ?"""
params =(texts,id)
cursor.execute(sql_update, params)
mysql.connection.commit()
cur.close()
return render_template('profile.html', id=session['id'], email=session['email'], texts=texts)
return redirect(url_for('login'))
profile.html
your session id is: {{ id }}
your session email is: {{ email }}
your session text is: {{ texts }}
<form action="" method="post">
<input type="text" name="text" class="form-control" placeholder="Text">
<input type="submit" name="button" value="Add"></form>
</form>
Значения id и email получаю, а вот строка text пустая, т.к. в бд ничего не записалось.
Ответы (1 шт):
Автор решения: Vadim.Sharoikin
→ Ссылка
Запрос проверил обычным скриптом через cmd. В фласке тоже должен работать. Выглядеть должен примерно так (сам синтаксис запроса корректен)
id= session['id']
texts = request.form['text']
sql_update ="""UPDATE users.data
SET texts=?
WHERE id = ?"""
params =(texts,id)
cursor.execute(sql_update, params)
mysql.connection.commit()
cur.close()