Я использую Flask-MySQL для подключения к моей базе данных в представлении. Вид работы в первый раз, когда я иду к нему, но когда я иду к нему во второй раз, он всегда падает с ошибкой:Flask-MySQL дает ошибку «закрытие закрытого соединения» во второй раз при запуске представления
ProgrammingError: closing a closed connection
Почему я получаю эту ошибку? Как успешно подключиться во второй раз?
from flask import Flask, render_template, request
from flaskext.mysql import MySQL
app = Flask(__name__)
@app.route('/hello/', methods=['POST'])
def hello():
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_PASSWORD'] = 'xxx'
app.config['MYSQL_DATABASE_DB'] = 'pies'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
query = request.form['yourname']
mysql = MySQL(app)
conn = mysql.connect()
with conn as cursor:
try:
cursor.execute(query)
name = str(cursor.fetchone())
except:
name = "SQL is wrong"
conn.close()
return render_template('form_action.html', name=name)
if __name__ == '__main__':
app.run(debug=True)
Какова цель 'with conn как cursor:'? Это кажется странным способом использования диспетчера контекстов. –
Это было то, что я пытался избавиться от проблемы, но, очевидно, это не сработало. Проблема была там перед добавлением «with conn как cursor:» – jvk777
Имеется ли полная трассировка ошибок в любом месте, которая указывает, какая именно строка кода вызывает ошибку? Возможно, в журнале ошибок веб-сервера? –