Definisci solo conn
e cursor
all'interno del blocco if controllando i valori del modulo. Se il blocco non viene inserito, non è definito, ma si tenta comunque di fare riferimento ad esso per chiuderlo comunque. Dovresti solo chiamare close
su entrambi se li hai definiti. O muovi conn =
e cursor =
prima del blocco if, oppure sposta il close
chiamate all'interno del blocco.
Tuttavia, il problema più grande è che stai fraintendendo/complicando eccessivamente come utilizzare Flask-MySQLdb. Creerà automaticamente la connessione e la chiuderà al termine della richiesta, chiudendo anche il cursore. Usa semplicemente l'estensione come descritto nei documenti .
...
cur = mysql.connection.cursor()
cur.callproc('sp_createUser', (name, email, hashed_password))
data = cur.fetchall()
...