3

Flask を使用して単純な REST サービスを作成しています。コードで例外が発生すると、適切なエラー メッセージと対話型デバッガーがブラウザーに表示されます。ただし、コマンド ライン (curl など) から、または単体テストでサービスを呼び出し、何かが失敗した場合でも、書式設定された (HTML) エラー メッセージが表示されます。代わりにプレーン テキスト メッセージ (基本的には Python エラー + トレースバックのみ) を受け取ったことがあることを覚えています。

ブラウザなしでアクセスしたときに、Flask がプレーンな (非インタラクティブ、非 HTML) エラー メッセージを返すようにするにはどうすればよいですか?

4

2 に答える 2

7

本番モードで例外を処理するには、ステータス コード 500 のエラー ハンドラを登録します。そこから、好きなものを返すことができます。例外自体をプレーンテキストとして返す例を次に示します。

@app.errorhandler(500)
def error_500(exception):
    return str(exception), 500, {'Content-Type': 'text/plain'}

作成している API の場合は、JSON でエンコードされたデータを返すapplication/json方が適切な場合があります。

于 2012-12-13T12:54:46.833 に答える
4

app.debug = Falseファンシーエラーレポートをオフにするように設定します。ドキュメンテーションには、デバッグ モードの詳細があります。

于 2012-12-13T11:13:46.700 に答える