Я учусь создавать приложение flask, которое вставляет записи в базу данных mysql, значения которой получены из формы html.
Я написал следующий фрагмент кода:
from flask import Flask, render_template, request, redirect, url_for, flash
from flask_mysqldb import MySQL
app = Flask(__name__)
#MySql Connection
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'password'
app.config['MYSQL_DB'] = 'flaskcontacts'
mysql = MySQL(app)
# settings
app.secret_key = 'mysecretkey'
@app.route('/')
def Index():
return render_template('index.html')
@app.route('/add_contact', methods=['POST'])
def add_contact():
if request.method == 'POST':
fullname = str(request.form['fullname'])
phone = str(request.form['phone'])
email = str(request.form['email'])
cur = mysql.connect.cursor()
print(str(fullname), phone, email)
cur.execute("INSERT INTO flaskcontacts.contacts (fullname, phone, email) VALUES (%s, %s, %s)",
(fullname, phone, email))
mysql.connection.commit()
flash('Contact Added successfully')
return redirect(url_for('Index'))
После того, как я его выполнил, я вижу, что получаю сообщение «Контакт успешно добавлен», но я не вижу никаких записей в базе данных mysql, однако я вижу, что Id, автоинкрементный, увеличивается , Поэтому, если я обновлю таблицу непосредственно в базе данных, она будет работать и покажет мне номер идентификатора, который уже автоинкремментирован, как если бы предыдущий фрагмент кода работал, но не обновлял его вообще.
У меня есть потратил много часов, пытаясь решить эту проблему, но помимо ответа я был бы признателен, если бы вы могли помочь мне с некоторыми лучшими практиками, как отладить проблемы такого типа.
С уважением