Я развернул приложение flask на сервере Ubuntu, но когда я пытался запустить приложение, я обнаружил ошибку
Серверу не удалось возобновить транзакцию
после нескольких SQL транзакций и приложение падает до
Внутренняя ошибка сервера
Я использую flask framework, pyodb c для подключения к SQL серверу, uwsgi и nginx для WSGI, и я очень новичок в развертывании приложения flask на сервере. Ошибка приходит, я думаю, когда я запускаю определенный маршрут из приложения. Код указанного c маршрута приведен ниже,
@app.route('/master_values/', methods=["GET","POST"])
def masterValidationValues():
if request.method == "POST":
MasterData = pd.read_sql("select ID,ParameterName,ParameterLowValue,ParameterHighValue from DeskMasterData", db)
updates = []
for key,value in MasterData["ParameterName"].iteritems():
updates.append({
"ParameterName": value,
"ParameterLowValue": request.form.get(str(value + " " + "Low")),
"ParameterHighValue": request.form.get(str(value + " " + "High")) })
df = pd.DataFrame(updates)
cursor.fast_executemany = True
for i in range(0, df.__len__()):
cursor.execute("update DeskMasterData set ParameterLowValue={low}, ParameterHighValue={high} "
"where ParameterName = '{parameter}'".format(
parameter=df.iloc[i].ParameterName,
low=float(df.iloc[i].ParameterLowValue),
high=float(df.iloc[i].ParameterHighValue) ))
db.commit()
return redirect(url_for("masterValidationValues"))
masterValues = pd.read_sql("select ID,ParameterName,ParameterLowValue,ParameterHighValue from DeskMasterData", db)
return render_template('master-values.html', masterValues = masterValues)
Ниже приведен скриншот ошибки:
По Я могу понять, что код пытается запустить новую транзакцию SQL даже до того, как существующая транзакция будет зафиксирована или закрыта. Или, может быть, я неправильно использую многопоточность, из-за чего несколько SQL транзакций перекрываются. Я сбит с толку, потому что я использовал тот же подход, который использовался на этом маршруте для SQL, также и на всех других маршрутах, но только этот маршрут дает мне ошибку. Прошу вас, пожалуйста, помогите мне разобраться с этим. Также, пожалуйста, предложите альтернативный и эффективный способ обработки запросов к базе данных с помощью flask с примером.