Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите исправить ошибку в коде. Не выполняется db.session.commit() в конце

Rec0rdeR Знаток (297), открыт 1 неделю назад
 @app.route('/reg/', methods=['GET', 'POST'])
def registration():
if request.method == 'POST':
login = request.form['login']
psw = request.form['psw']

user = Users(login=login, psw=psw)
users = Users.query.all()

if any(u.login == login for u in users):
return "Такой пользователь уже существует"

try:
db.session.add(user)
db.session.commit()
return redirect("/upload/")
except:
return "Ошибка"
else:
return render_template("reg.html")
1 ответ
Chudo_Chudnoe Мастер (1938) 1 неделю назад
Привет) Попробуй так:


 class Users(db.Model): 
id = db.Column(db.Integer, primary_key=True)
login = db.Column(db.String(80), unique=True, nullable=False)
psw = db.Column(db.String(80), nullable=False)

@app.route('/reg/', methods=['GET', 'POST'])
def registration():
if request.method == 'POST':
login = request.form['login']
psw = request.form['psw']

if Users.query.filter_by(login=login).first():
return "Такой пользователь уже существует"

user = Users(login=login, psw=psw)

try:
db.session.add(user)
db.session.commit()
return redirect("/upload/")
except Exception as e:
db.session.rollback()
print(f"Ошибка при работе с базой данных: {e}")
return "Ошибка при работе с базой данных"
else:
return render_template("reg.html")
И вместо print лучше использовать logging)
Похожие вопросы