Я пытаюсь добавить кнопку для удаления музыкального заведения из моей базы данных postgres с помощью flask -sqlalchemy на странице этого места, а затем перенаправить на домашнюю страницу, но получаю сообщение об ошибке
DELETE ip 405 (METHOD NOT ALLOWED)
в моей консоли и
[28/May/2020
14:12:49] "DELETE /deletevenue/1 HTTP/1.1" 302 -
72.133.209.13 - - [28/May/2020
14:12:50] "DELETE / HTTP/1.1" 405 -
в моем терминале. Я не знаю, что не так. Я вижу, что на маршрут отправляется правильный идентификатор места проведения, но я все еще получаю эту ошибку. Я не знаю, что здесь не так. Это соответствующий код:
app.py
@app.route('/deletevenue/<venue_id>', methods=['DELETE'])
def delete_venue(venue_id):
error = False
venue = db.session.query(Venue).filter_by(id=venue_id).one()
name = venue.name
try:
Venue.query.filter_by(id=venue_id).delete()
db.session.commit()
except:
error = True
db.session.rollback()
finally:
db.session.close()
if error:
flash('An Error occured. The venue ' + name + ' could not be deleted.')
return redirect(url_for('index'))
else:
flash('Success. Venue ' + name + ' was deleted.')
return redirect(url_for('index'))
@app.route('/')
def index():
return render_template('pages/home.html')
show_venue. html
<div class="row">
<button class="btn btn-default btn-lg" id="deleteArtist" data-id="{{ venue.id }}">Delete this Artist</button>
</div>
</section>
<script>
const btn = document.getElementById('deleteArtist');
btn.onclick = function(e) {
venue_id = e.target.dataset['id'];
console.log(venue_id)
let r = confirm("Are you sure you want to delete this venue?");
if (r == true) {
fetch('/deletevenue/' + venue_id, {
method: 'DELETE'
})
}
}
</script>
Как я могу заставить эту кнопку работать?