Вие дефинирате само conn
и cursor
вътре в блока if, проверявайки стойностите на формуляра. Ако блокът не е въведен, те не са дефинирани, но въпреки това се опитвате да ги препратите, за да ги затворите. Трябва само да се обадите на close
и на двете, ако сте ги дефинирали. Или преместете conn =
и cursor =
до преди блока if или преместете close
извиквания в рамките на блока.
По-големият проблем обаче е, че не разбирате/прекомерно усложнявате как да използвате Flask-MySQLdb. Той автоматично ще създаде връзката и ще я затвори, когато заявката бъде изпълнена, което също затваря курсора. Просто използвайте разширението, както е описано в документите .
...
cur = mysql.connection.cursor()
cur.callproc('sp_createUser', (name, email, hashed_password))
data = cur.fetchall()
...