Du definierar bara conn
och cursor
inuti if-blocket kontrollerar formulärvärdena. Om blocket inte anges är de inte definierade, men du försöker fortfarande hänvisa till dem för att stänga dem ändå. Du ska bara ringa close
på båda om du har definierat dem. Flytta antingen conn =
och cursor =
till före if-blocket, eller flytta close
anrop inom blocket.
Det större problemet är dock att du missförstår/överkomplicerar hur man använder Flask-MySQLdb. Den kommer automatiskt att skapa anslutningen och stänga den när begäran är klar, vilket också stänger markören. Använd helt enkelt tillägget enligt beskrivningen i dokumenten .
...
cur = mysql.connection.cursor()
cur.callproc('sp_createUser', (name, email, hashed_password))
data = cur.fetchall()
...