Sie definieren nur conn
und cursor
innerhalb des if-Blocks, der die Formularwerte überprüft. Wenn der Block nicht betreten wird, sind sie nicht definiert, aber Sie versuchen trotzdem, auf sie zu verweisen, um sie trotzdem zu schließen. Sie sollten nur close
aufrufen auf beiden, wenn Sie sie definiert haben. Verschieben Sie entweder conn =
und cursor =
vor den if-Block oder verschieben Sie das close
Aufrufe innerhalb des Blocks.
Das größere Problem ist jedoch, dass Sie die Verwendung von Flask-MySQLdb missverstehen/überkomplizieren. Es erstellt automatisch die Verbindung und schließt sie, wenn die Anfrage erledigt ist, wodurch auch der Cursor geschlossen wird. Verwenden Sie einfach die Erweiterung wie in den docs beschrieben .
...
cur = mysql.connection.cursor()
cur.callproc('sp_createUser', (name, email, hashed_password))
data = cur.fetchall()
...