Как вернуть 200 статус после получения POST запроса? (Flask, Python)
Установлено и работает: apache2 + flask + SSL от Let's encrypt для домена 2 уровня
/tgwh - url вебхука от телеграма
Сообщения приходят, но flask возвращает 500 статус и телеграмм каждую минуту пытается отправить заново. Минимально код выглядит так:
from flask import Flask, render_template, request
SECRET_KEY = 'secret'
app = Flask(__name__)
app.config['TESTING'] = False
app.config['PROPAGATE_EXCEPTIONS'] = True
@app.route('/tgwh', methods=['GET', 'POST'])
def webhook():
if request.method == 'POST':
data = request.get_json(force=False, silent=False, cache=True)
detect_type_of_message(data)
return jsonify(result={"status": 200})
if __name__ == "__main__":
app.run(debug=False)
Вопрос: как вернуть 200 ответ после получения POST запроса? Что я делаю не так? Сейчас - 500й(
Ответы (1 шт):
Автор решения: Vladislav Moshikov
→ Ссылка
500 ответ - это внутренняя ошибка сервера. Соответсвтенно что-то ломается коде. На первый взляд:
- Отступы внутри
if request.method == 'POST': - Отсутствует декларация/импорт
detect_type_of_message(я не помню такой внутренней функции Flask - Отсутствует импорт
from flask import jsonify - Проверь все отступы, так как в приведенном коде - есть лишние пробелы в том числе перед
if __name__ == "__main__":