Anda hanya menentukan conn dan cursor di dalam blok if memeriksa nilai formulir. Jika blok tidak dimasukkan, blok tersebut tidak ditentukan, tetapi Anda tetap mencoba merujuknya untuk menutupnya. Anda hanya harus memanggil close pada keduanya jika Anda telah mendefinisikannya. Pindahkan conn = dan cursor = ke sebelum blok if, atau pindahkan close panggilan ke dalam blok.
Namun, masalah yang lebih besar adalah Anda salah paham/merumitkan cara menggunakan Flask-MySQLdb. Ini akan secara otomatis membuat koneksi dan menutupnya ketika permintaan selesai, yang juga menutup kursor. Cukup gunakan ekstensi seperti yang dijelaskan dalam dokumen .
...
cur = mysql.connection.cursor()
cur.callproc('sp_createUser', (name, email, hashed_password))
data = cur.fetchall()
...