404エラー、500エラーなどエラーを別のサイトに遷移させる(エラーハンドリング)
Flaskでエラーハンドリングをするには、関数のデコレータ関数として@app.routeとするかわりに、
@app.errorhandlerとすればよい。
ステータスコードには、以下のようなものがあり、そのエラーが発生した場合に実行する関数を記述する。
400 | 不正な構文、無効なリクエストメッセージ、または不正なリクエストのために、サーバーがクライアントによって送信されたリクエストを処理されなかったことを示す |
403 | ユーザーにアクセス権がなく閲覧禁止になっていることを示す |
404 | URLに対応するページが存在しないことを示す |
500 | インターナルサーバエラー、サーバ側の処理に問題があることを示す |
では、以下に具体例を記述する。
Example
- @app.errorhandlerを指定して、エラーコードに対して実行される処理を記述する
from flask import Flask, render_template, redirectapp = Flask(__name__)
@app.errorhandler(404) # 404エラーが発生した場合の処理
def error_404(error):
return render_template('404.html')
上の例では、app.errorhandlerを使って404エラーの場合に、404.htmlを表示するように設定した。
(404エラーは、URLに対応するページが存在しない場合に遷移される)
- 404.htmlの実装
<p>404エラーが発生しました</p>
このようにすると、http://127.0.0.1:5000/に遷移した場合以下の画面(404.html)が表示される。
- http://127.0.0.1:5000/に遷移する(404エラーが発生しましたと表示される)