Я работаю над приложением Flask, в котором мне нужно удалить коды классов из базы данных с помощью запроса DELETE. Я использую JavaScript во внешнем интерфейсе, чтобы инициировать удаление, и у меня настроен маршрут Flask для обработки запроса. Однако я не могу удалить код класса при нажатии кнопки. Вот код, который я написал:
Внешний интерфейс (JavaScript и HTML):
@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>
Заранее спасибо!
Я работаю над приложением Flask, в котором мне нужно удалить коды классов из базы данных с помощью запроса DELETE. Я использую JavaScript во внешнем интерфейсе, чтобы инициировать удаление, и у меня настроен маршрут Flask для обработки запроса. Однако я не могу удалить код класса при нажатии кнопки. Вот код, который я написал: Внешний интерфейс (JavaScript и HTML): [code] 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)); }); });
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 [/code] Проблема: [list] [*]Когда я нажимаю кнопку «Удалить», код класса не удаляется, а сообщение «Не удалось удалить код класса!» отображается. [*]Я подозреваю, что проблема может быть связана с тем, как маршрут Flask обрабатывает запрос, или может быть проблема с тем, как интерфейс выполняет DELETE запрос. [/list] Что я пробовал: [list] [*]Я подтвердил это внешний интерфейс правильно отправляет запрос DELETE. [*]Я проверил маршрут Flask, и кажется, что он правильно обрабатывает запрос, но код класса не удаляется. [*]На стороне Flask я: Мы добавили обработку исключений и откат сеанса, но сообщения об ошибках не отображаются в консоли браузера. [*]Я убедился, что токен CSRF правильно отправлен в заголовках запроса.[/list] Кем я был Ожидается: [list] [*]Я ожидал, что код класса будет удален, когда я нажму кнопку «Удалить», и интерфейс обновит список кодов классов. соответственно. [*]Я также ожидал сообщения об успехе «Код класса успешно удален!» появиться и код класса будет удален из DOM. [/list] Может ли кто-нибудь помочь мне определить, в чем может быть проблема, или предложить какие-либо улучшения?< /p> Заранее спасибо!