отменить или make_response или jsonify - PullRequest
0 голосов
/ 13 февраля 2020

Я пишу Flask веб-приложение и хочу узнать о лучших практиках возврата неудачного ответа. Пример кода:

@app.route("/api/model", methods=["DELETE"])
def delete_models():
    """
    Deleting all models.
    """
    try:
        model_service.delete_all_models()
        response = make_response(jsonify(success=True))
    except Exception as ex:
        response = make_response(jsonify(str(ex)), 500)
    response.headers["Content-Type"] = "application/json"
    return response

Я нашел три разных подхода.

  1. return jsonify(success=False)
  2. abort(404, description="There is no model with this index!")
  3. response.headers["Content-Type"] = "application/json"
    return response```
    

Какой из них лучший? Какие преимущества и недостатки у каждого из них?

1 Ответ

0 голосов
/ 13 февраля 2020

Вы можете использовать обработчик ошибок обработчика flask, как описано в do c.

Например:

@app.errorhandler(InvalidUsage)
def handle_invalid_usage(error):
    response = jsonify(error.to_dict())
    response.status_code = error.status_code
    # Log here the error
    return response

# In your exception or error control use:
raise InvalidUsage('This view is gone', status_code=410)
...