Невозможно удалить код класса в приложении FlaskPython

Программы на Python
Ответить
Anonymous
 Невозможно удалить код класса в приложении Flask

Сообщение Anonymous »

Я работаю над приложением Flask, в котором мне нужно удалить коды классов из базы данных с помощью запроса DELETE. Я использую JavaScript во внешнем интерфейсе, чтобы инициировать удаление, и у меня настроен маршрут Flask для обработки запроса. Однако я не могу удалить код класса при нажатии кнопки. Вот код, который я написал:
Внешний интерфейс (JavaScript и HTML):

Код: Выделить всё

Delete


document.querySelectorAll('.delete-btn').forEach(button => {
button.addEventListener('click', function() {
let classCodeId = this.getAttribute('data-id');

fetch(`/delete_class_code/${classCodeId}`, {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
// Include additional headers if needed, such as CSRF token for security
}
})
.then(response => response.json())
.then(data => {
if (data.message === 'Class code deleted successfully!') {
// Optionally remove the element from the DOM
this.closest('.class-code-item').remove();
alert('Class code deleted!');
} else {
alert('Failed to delete class code!');
}
})
.catch(error => console.error('Error:', error));
});
});

Flask Route:

Код: Выделить всё

@main.route('/delete_class_code/', methods=['DELETE'])
@login_required
def delete_class_code(id):
if current_user.role != 'employee':
return jsonify({'message': 'Unauthorized'}), 403

try:
# Assuming you have a ClassCode model and you're using SQLAlchemy
class_code = ClassCode.query.get(id)
if class_code:
db.session.delete(class_code)
db.session.commit()
return jsonify({'message': 'Class code deleted successfully!'}), 200
return jsonify({'message': 'Class code not found.'}), 404
except Exception as e:
db.session.rollback()  # Ensure the session is rolled back if there is an error
return jsonify({'message': 'An error occurred: ' + str(e)}), 500
Проблема:
  • Когда я нажимаю кнопку «Удалить», код класса не удаляется, а сообщение «Не удалось удалить код класса!» отображается.
  • Я подозреваю, что проблема может быть связана с тем, как маршрут Flask обрабатывает запрос, или может быть проблема с тем, как интерфейс выполняет DELETE запрос.
Что я пробовал:
  • Я подтвердил это внешний интерфейс правильно отправляет запрос DELETE.
  • Я проверил маршрут Flask, и кажется, что он правильно обрабатывает запрос, но код класса не удаляется.
  • На стороне Flask я: Мы добавили обработку исключений и откат сеанса, но сообщения об ошибках не отображаются в консоли браузера.
  • Я убедился, что токен CSRF правильно отправлен в заголовках запроса.
Кем я был Ожидается:
  • Я ожидал, что код класса будет удален, когда я нажму кнопку «Удалить», и интерфейс обновит список кодов классов. соответственно.
  • Я также ожидал сообщения об успехе «Код класса успешно удален!» появиться и код класса будет удален из DOM.
Может ли кто-нибудь помочь мне определить, в чем может быть проблема, или предложить какие-либо улучшения?< /p>
Заранее спасибо!


Подробнее здесь: https://stackoverflow.com/questions/793 ... pplication
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»