Bạn chỉ xác định conn
và cursor
bên trong khối if kiểm tra các giá trị biểu mẫu. Nếu khối không được nhập, chúng không được xác định, nhưng bạn vẫn cố gắng tham chiếu đến chúng để đóng chúng. Bạn chỉ nên gọi close
trên cả hai nếu bạn đã xác định chúng. Di chuyển conn =
và cursor =
đến trước khối if hoặc di chuyển close
các cuộc gọi đến trong khối.
Tuy nhiên, vấn đề lớn hơn là bạn đang hiểu sai / quá phức tạp về cách sử dụng Flask-MySQLdb. Nó sẽ tự động tạo kết nối và đóng nó khi yêu cầu được thực hiện, điều này cũng đóng con trỏ. Chỉ cần sử dụng tiện ích mở rộng như được mô tả trong tài liệu .
...
cur = mysql.connection.cursor()
cur.callproc('sp_createUser', (name, email, hashed_password))
data = cur.fetchall()
...