Я хотел бы иметь возможность отображать собственные сообщения об ошибках с помощью функции abort() в Flask. Я столкнулся с необычной ситуацией, с которой у меня возникают проблемы. Мой код ниже.Flask - пользовательские сообщения об ошибках при отмене
from flask import Flask, abort, jsonify, make_response, request
app = Flask(__name__)
@app.errorhandler(400)
def custom400(error):
return make_response(jsonify({'message': error.description}), 400)
@app.route('/test', methods=['POST'])
def test():
abort(400, 'custom error message')
if __name__ == '__main__':
app.run()
Приведенный выше код работает, но ведет себя по-другому, если я пытаюсь получить доступ к данным какой-либо формы, потому что теряю доступ к настраиваемому сообщению об ошибке.
def test():
a = request.form['some_value']
abort(400, 'custom error message')
Как я могу избежать этой ситуации? Это ошибка в фляге?
Примечание: Приведенный выше код был взят из how to get access to error message from abort command when using custom error handler
Можете ли вы пояснить, что вы подразумеваете под «Я теряю доступ к настраиваемому сообщению об ошибке»? – Oin
Я почти уверен, что ошибка не имеет описания, потому что вы не устанавливаете 'some_value' в свой орган POST, поэтому ошибка 400 возникает из' request.form .__ getitem__' - что произойдет, если вы измените первую строку от 'test' до' a = request.form.get ('some_value') '? –
@SeanVieira - Вы правы! Я понятия не имел, что моя попытка доступа к недействительному объекту словаря привела к 400. Не могли бы вы оставить свой комментарий в качестве ответа, чтобы я мог его принять? –