Когда я пытаюсь отправить данные в Flask на страницу HTML для индикатора выполнения, я получаю сообщение об ошибке:
cursor = mysql .connection.cursor () AttributeError: у объекта 'NoneType' нет атрибута 'cursor'
Я знаю, что это означает, что нет соединения с базой данных. Если я раскомментирую yield "data:" + str(row) + "\n\n"
, ошибок не будет, и база данных будет подключена.
@app.route('/progress')
def progress():
def generate():
while 1:
cursor = mysql.connection.cursor()
cursor.execute("SELECT * FROM log_data WHERE id =( SELECT MAX(id) FROM log_data);")
mysql.connection.commit()
records = cursor.fetchall()
cursor.close()
for row in records:
print(row)
yield "data:" + str(row[1]) + "\n\n"
time.sleep(0.5)
break
return Response(generate(), mimetype='text/event-stream')
Вот сценарий в HTML:
var source = new EventSource("/progress");
source.onmessage = function(event) {
$('.progress-bar').css('width', event.data+'%').attr('aria-valuenow', event.data);
if(event.data == 100){
source.close()
}
}
Почему возникает такая вещь и как можно было бы отправить потоковые данные на страницу HTML в Flask?