Flask удаление сообщения, ограничения URL - PullRequest
0 голосов
/ 07 мая 2020

Пример кода:

@app.route('/delete-update/<int:post_id>')
@login_required
def delete_update(post_id):
    try:
        p = Post.query.filter(Post.id == post_id).delete()
        db.session.commit()
        flash('Post successfully deleted')
    except:
        db.session.rollback()
    return redirect(url_for('index'))

Я могу удалить сообщение, используя этот маршрут, щелчком кнопки, но как предотвратить удаление сообщения, запросив URL-адрес

localhost: 5000 / удаление-обновление / 1

1 Ответ

0 голосов
/ 07 мая 2020

Вы должны использовать атрибут methods после определения маршрута.

@app.route('/delete-update', methods=['POST'])
    if request.method == 'POST':
        #do your stuff

Вы также можете использовать любой HTTP-метод по умолчанию, например PUT, DELETE, PATCH.

Имейте в виду, что с этим изменением , если вы сделаете запрос методом GET на:

http://localhost:5000/delete-update/1

, вы получите ответ 405 с сообщением method not allowed. Это потому, что наш маршрут больше не обрабатывает GET

. Также при этом вы должны изменить дескриптор кнопки, чтобы отправить запрос на этот маршрут с помощью метода POST.

...