【发布时间】:2020-10-12 22:21:26
【问题描述】:
我似乎无法弄清楚我在烧瓶 Web 应用程序中收到“pymysql.err.ProgrammingError: Cursor closed”的错误。我确定我犯了一个小错误,但是关于这个错误的文档并不多。错误发生在“cursor.execute(query, email)”行。以下是我的代码:
from flask import Flask, render_template, request
import pymysql.cursors
import os
app = Flask(__name__)
IMAGES_DIR = os.path.join(os.getcwd(), "images")
conn = pymysql.connect(host='localhost',
port=8889,
user='LandingPage',
password='t9ybKLtVaS6qLQ7g',
db='LandingPage',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
@app.route('/', methods=['GET', 'POST'])
@app.route('/home', methods=['GET', 'POST'])
def home():
if request.form:
name = request.form['name']
email = request.form['email']
phone_number = request.form['phone number']
with conn.cursor() as cursor:
query = 'SELECT * FROM LandingPage WHERE email = %s'
cursor.execute(query, email)
data = cursor.fetchone()
conn.commit()
error = None
if data:
error = "A person with this email already exists in the database"
return render_template('home.html', error=error)
else:
ins = "INSERT INTO LandingPage (name, email, phone number) VALUES (%s, %s, %s)"
cursor.execute(ins, (name, email, phone_number))
conn.commit()
cursor.close()
return render_template('home.html')
return render_template('home.html')
if __name__ == "__main__":
app.run('127.0.0.1', 4999, debug=True)
【问题讨论】:
-
错误来自哪一行?
-
@Sam 对不起,我应该澄清一下 - 这个主页在 localhost:4999/home 上工作,但是在我输入姓名、电子邮件和电话号码后提交表单后,我我被重定向回 localhost:4999/home,这就是我收到此错误的地方。它在线“cursor.execute(query, email)”
标签: python database flask web-applications