разбираюсь с ajax во flask, перерыл уже много в интернете всего, но не работает почему-то. Цель: отправить введённые данные от пользователя во фласк чтобы эти данные записались в нужное значение в словарь файла json. Но у меня не получается запустить почему-то ajax. Данные передаются только через request.form и после нажатия "записать" перезапускается страница, а ведь она не должна перезапускаться с ajax. Также надо передать вместе с введенными данными от пользователя, номер id строки из таблицы (она выводится в row[6], в которую он вводит данные. Люди добрые, подскажите пож, в первую очередь, где ошибка и что я не так делаю с ajax? а также пож подскажите, как передать id строки (row[6]) которая также передается с сервера из dataframe (она не должна быть видна пользователю )?
обработка отправки данных во flask
@app.route('/save/', methods=['POST', 'GET']) # кнопка записи
def save():
with open('index.txt') as json_file:
data = json.load(json_file)
mass = request.form['mass']
row_id = request.form['row']
for i in data:
if i == row_id:
data[i] = mass
with open('index.txt', 'w') as outfile:
json.dump(data, outfile)
return render_template('index.html')
файл ajax save.js- он находится в папке static
$(document).ready (function () {
$("#mass_btn").bind('click', function() {
$. ajax ({
url: '/',
type: "POST",
data: ({name: $("#mass").val()}),
dataTape: "html",
success: function () {
$("#information").text('записано');
}
});
});
});
ссылка jquery из гугла вставлена в base.html
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script type="text/javascript" src="{{ url_for('static', filename='save.js') }}"></script>
а также index.html
{% extends "base.html" %}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script type="text/javascript" src="{{ url_for('static', filename='save.js') }}"></script>
{% block content %}
<h1>Авторизация, {{ current_user.username }}!</h1>
<form action="/upload/" method="POST">
<input type="submit" class="btn btn-dark" value="Загрузить">
</form>
<table cellspacing="2" border="1" cellpadding="5">
{% for index, row in df %}
<tr>
<td>{{ row[0] }}</td>
<td>{{ row[1] }}</td>
<td>{{ row[2] }}</td>
<td>{{ row[3] }}</td>
<td>{{ row[4] }}</td>
<td>{{ row[5] }}</td>
<td> row[6]
<form action="/save/" method="POST" name="save" id="row" >
<input id='mass' type="number" name="mass" />
<input id='mass_btn' type="submit" value="Записать">
</form>
</td>
</tr>
{% endfor %}
</table>
{% endblock %}