フラスコ例外

 フラスコ例外

 

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に許可されていません。'

 

おすすめ

転載: www.cnblogs.com/wodeboke-y/p/11093538.html