Vous ne définissez que conn
et cursor
à l'intérieur du bloc if vérifiant les valeurs du formulaire. Si le bloc n'est pas entré, ils ne sont pas définis, mais vous essayez quand même de les référencer pour les fermer quand même. Vous ne devez appeler que close
sur les deux si vous les avez définis. Soit déplacer conn =
et cursor =
avant le bloc if, ou déplacez le close
appels à l'intérieur du bloc.
Cependant, le plus gros problème est que vous comprenez mal/complissez trop comment utiliser Flask-MySQLdb. Il créera automatiquement la connexion et la fermera lorsque la demande sera terminée, ce qui fermera également le curseur. Utilisez simplement l'extension comme décrit dans la docs .
...
cur = mysql.connection.cursor()
cur.callproc('sp_createUser', (name, email, hashed_password))
data = cur.fetchall()
...