Ошибка 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)