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()
...