Ошибка missing 1 required positional argument: 'request' при POST запросе Flask

Нужно принять и обработать post запрос на flask Функция принимающая запрос:

@app.route('/zapros', methods=['POST'])
def zapros():
    if request.method == "POST":
        data = request.get_json()
        if data['event'] == 'login':
            print(data)
            return Response(status=200)
        else:
            print("error")
            return Response(status=500)
        return Response(status=200)

отправляю запрос

curl --header "Content-Type: application/json" --request POST --data '{"event":"login"}' https://localhost:5000/zapros

ответом получаю 500 и ошибку

zapros() missing 1 required positional argument: 'request'

Почему требуется аргумент request?


Ответы (2 шт):

Автор решения: nomnoms12

Добавьте параметр request в определение функции:

def zapros(request):
→ Ссылка
Автор решения: WhiteApfel
zapros() missing 1 required positional argument: 'request'

говорит о том, что ожидается аргумент request, который в функцию не передаётся.

Хочу напомнить, что в Flask необходимо импортировать request (добавлять в аргументы функции не нужно, то есть приведённый вами код верен, но на post запрос можно не проверять, flask не-post не пропустит):

from flask import request

@app.route('/zapros', methods=['POST'])
def zapros():
    if request.method ...

И потом просто в теле функции использовать request.

Также nomnoms12 верно подметил, что надо не забывать перезапускать сервер, либо активировать режим дебага:

app.run(debug=True)
→ Ссылка