Hỏi về MySQLdb trong python
Xin chào các bạn, mình vào thẳng vấn đề luôn: Hiện mình đang tập làm back-end với python dùng Flask Framework, mình có tạo 1 page để user đăng kí tài khoản (sử dụng wtforms) nhưng sau khi mình POST dữ liệu thì dữ liệu không được lưu vào database. Đây là code của mình:
@app.route('/register/', methods=["GET","POST"])
def registry_page():
try:
form = RegistryForm(request.form)
if request.method =="POST" and form.validate_on_submit():
c, conn = connection()
name=form.username.data
passwd=form.password.data
x=c.execute("SELECT * FROM users WHERE username=(%s)",(thwart(name)))
if int(x)>0:
message= "User already exist"
return render_template("registry.html", form = form, message=message)
else:
c.execute("INSERT INTO users (username,password) VALUES (%s,%s)", (thwart(name),thwart(passwd)))
conn.commit()
c.close()
conn.close()
gc.collect()
return redirect(url_for('loginpage',message="You can login now"))
return render_template("registry.html", form=form)
except Exception as e:
return(str(e))
Hiện giờ mình đang vẫn tìm cách để lưu tài khoản của người dùng vào db nhưng không được dù đã gọi hàm commit(). Có bạn nào có kinh nghiệm hoặc biết fix thì chỉ mình với Mình làm trong console của python thì commit vô tư nhưng vào code lại chạy không được @@
help me
Trước hết đổi câu lệnh sau:
x=c.execute("SELECT * FROM users WHERE username=(%s)",(thwart(name)))
Thành:
Code trên sử dụng PyMySQL nhưng nó tương tự với MySQLdb:
Bạn có thể tham khảo thêm ở đây: