Du definerer kun conn
og cursor
inde i if-blokken kontrollerer formularværdierne. Hvis blokken ikke er indtastet, er de ikke defineret, men du prøver stadig at henvise til dem for at lukke dem alligevel. Du bør kun ringe til close
på begge, hvis du har defineret dem. Flyt enten conn =
og cursor =
til før if-blokken, eller flyt close
opkald til inden for blokken.
Det større problem er dog, at du misforstår/overkomplicerer, hvordan du bruger Flask-MySQLdb. Den vil automatisk oprette forbindelsen og lukke den, når anmodningen er udført, hvilket også lukker markøren. Du skal blot bruge udvidelsen som beskrevet i dokumenterne .
...
cur = mysql.connection.cursor()
cur.callproc('sp_createUser', (name, email, hashed_password))
data = cur.fetchall()
...