2014-04-15 1 views
0

Я пытался изменить пример кода here но мне кажется, что jsonify делает это трудно ... Я сделал следующее без jsonify:Возврат текст/html на исключениях

@app.errorhandler(InvalidUsage) 
def handle_invalid_usage(error): 
    response = error.to_dict() 
    response.status_code = error.status_code 
    return response 

Первоначально, третья линия например:

response = jsonify(error.to_dict()) 

Как это сделать? Я не хочу использовать JSON. Только текст/html

+0

Что здесь не работает? Ваш вопрос не очень ясен. Что вы ожидаете увидеть? Вы получаете какую-либо ошибку? – codegeek

+0

Я получаю этот атрибут 'AttributeError: 'dict' не имеет атрибута 'status_code'' – gspt

+0

Я ожидаю увидеть' message' и 'status_code', но я хочу, чтобы Content-Type был text/html, а не application/json – gspt

ответ

0

Ну, я полагаю, что error.to_dict() возвращает dict, который не будет иметь атрибут кода состояния (это просто обычный старый dict). Вы можете попробовать это вместо этого:

@app.errorhandler(InvalidUsage) 
def handle_invalid_usage(error): 
    response = error.to_dict() 
    response["status_code"] = error.status_code 
    return response 

Сказанное, кажется странным, что словарь не будет иметь код ошибки в нем. Может быть, более подробная информация о том, что вы пытаетесь сделать, поможет? Если вы не вызываете вторую и последнюю строку и просто возвращаете ответ, что вы видите?

+0

Запуск код, как вы предложили, возвращает объект 'TypeError: 'dict' не вызываемый'. Если я не вернусь к второй строке, она вернется. То, что я пытаюсь выполнить, точно такое же, как описано [здесь] (http://flask.pocoo.org/docs/patterns/apierrors/), но без jsonify, так как я не хочу, чтобы тип содержимого был json – gspt

+0

Можете ли вы разместить всю ошибку, которую вы видите, включая трассировку стека? Я не знаю, приходит ли этот TypeError из моего кода, или если ваш код запущен в ошибке позже, потому что теперь он фактически завершает выполнение обработчика ошибок. – Nacho

+0

Вы действительно хотите удалить вызов jsonify()? Что вы пытаетесь сделать, сделав это? Эта функция принципиально изменяет структуру ошибки так, как это необходимо для того, чтобы Flask выполнял свою задачу. У вас есть что-то, обрабатывающее возвращаемое значение handle_invalid_usage()? Если нет, то Flask, вероятно, ожидает возвращения объекта jsonified(). – Nacho

Смежные вопросы