フラスコ例外
1.1。アボート
コンセプト:Pythonのraise文で関数に似た例外処理文でフラスコ、限りトリガが中止として、背後にあるコードが実行されることはありませんが、唯一のhttpプロトコルに沿って、例外ステータスコードを投げることができ中止します。
werkzeug.exceptions 輸入中止
@ app.route('/アボート')
DEF view_abort():
(405)アボート
リターンを'メインルートから試験を中止'
1.2。ErrorHandler
abort関数で飾らにErrorHandlerは、さらにユーザー体験を向上させるために、使用されている、彼は例外abort関数のステータス・コード、カスタムエラーページと情報を投げた受け取りました。
@ app.route('/アボート')
DEF view_abort():
(405)アボート
リターン'メインルートから試験を中止'
app.errorhandler(405)@
DEF err_404(E):
リターン' 错误404' + STR(E)
グローバルと非グローバル:エラー処理は2つのタイプがあります
青写真場合、この非グローバル以下。結果は青写真なしでは差はありません。
@ blue_t.errorhandler(405)
デフ err_405(E):
プリント('err_405' )
のリターン'エラー405青写真blue_tから'
app_errorhandler()はグローバルです
@ blue_t.app_errorhandler(405)
デフerr_404(E):
リターン'青写真error_405'
#returnのrender_template( 'エラー/ 404.html')
私たちは、グローバルな状態401をキャプチャするために、アプリ、app.errorhandler(401)を作成するために、工場出荷時のパターンを使用していない場合は、アプリはcreate_appの方法を使用して作成された場合は、キャプチャすることはできません、あなたがキャプチャしたい場合、あなたは、管理者として、青写真に書くことができます.errorhandler(401)、即ち、ステータスコード401は、すべての管理青写真を捕捉するために、admin.app_errorhandler(401)は、グローバル状態コード401、すなわち、状態401の他の青写真をキャプチャすることであり、それは、捕捉処理されます
注意:ハンドラ実行後のハンドラは、最初の文を上書きします。
例:
app.py
@ app.errorhandler(405)
DEF err_404(E):
プリント('メイン:err_404' )
リターン' 错误404' + STR(E)
青写真声明
@ blue_t.app_errorhandler(405)
デフ err_404(E):
リターン'青写真error_405'
#returnのrender_template( 'エラー/ 404.html')
アクセス/アボートは青写真のErrorHandlerにジャンプします。
2.概要
blueprint.errorhandler青写真@使用して例外処理()
例外処理のトップアプリでは、関数を呼び出した後、濃縮して。
#异常处理
デフ register_errors(アプリ):
app.errorhandler @(405)
デフ(e)のMETHOD_NOT_ALLOWED:
リターン api_abort(405、メッセージ= 'メソッドが要求されたURLに許可されていません。')