#javascript #python #html #flask
#javascript #python #HTML #flask
Вопрос:
Я использую Flask для отображения списка систем и добавления некоторых кнопок в качестве элемента строки, которые выполняют различные функции, такие как отключение системы, отображаемой в строке, и удаление записи.
Когда я нажимаю кнопку удаления, запись удаляется, но мое перенаправление не работает, и страница не обновляется — как я могу это сделать.
Это мой маршрут, который обрабатывает удаление.
route.py
@login_required
@webapp.route('/delete/<myrow_id>', methods=['GET'])
def delete(myrow_id):
print(f'Deleting item: {myrow_id}')
Systems.query.filter_by(id=myrow_id).delete()
db.session.commit()
# Get new systems object for page render.
systems = Systems.query.all()
return redirect(url_for('index'))
Фрагменты соответствующего HTML, показывающие элемент кнопки удаления и Javascript, используемый для вызова маршрута.
page.html
<td><button type="button" class="btn btn-sm btn-danger" id={{ system.id }} onClick="delete_item(this.id)">Remove</button></td>
<script>
function delete_item(clicked_id)
{
var client = new HttpClient();
client.get('/delete/' clicked_id, function(response) {
// Nothing to handle.
});
}
</script>
Ответ №1:
Вы можете сделать это без какой-либо функции, используя тег . Смотрите ниже:
<td> <button type="button" class="btn btn-sm btn-danger" id={{ system.id }}> <a href="/delete/{{system.id}}"> Remove </a> </button> </td>
Комментарии:
1. Функционально это отлично работает — спасибо. Однако визуально я, похоже, теряю качество кнопки начальной загрузки, поскольку она добавляет подчеркивание гиперссылки к тексту. Я пробовал искать, и люди предлагают добавить text-decoration:none; к стилю href, но я не могу заставить его работать. Есть предложения?
html <button type="button" class="btn btn-sm btn-danger" id={{ system.id }}> <a style='text-decoration:none;' href="/delete/{{system.id}}">Remove</a> </button>
2. Ваш код выглядит нормально. Может быть, попробуйте использовать двойные кавычки, например
<a style='text-decoration:none;'
?3. Извините, я имею в виду
"<a style='text-decoration:none"