Flaskのエラー処理|エラーメッセージの表示やエラーログを表示させる方法

スポンサーリンク

この記事では、さまざまな種類の HTTP エラーを扱い、次にこれらのエラーに対処するために Flask のエラー処理を使用する方法を学びます。

スポンサーリンク

なぜエラー処理が必要なのか?

Web アプリケーションのエラーは、いくつかの理由で発生する可能性があります。

アプリ内の不正なコードや、ユーザーによる不正なリクエスト、サーバーのダウンタイムなどが原因です。

したがって、これらのエラーを処理することは非常に重要です。

ブラウザはデフォルトでHTTPエラーを処理してくれますが、その出力はあまり美的ではありません。

例えば、Flaskアプリケーションを構築しているときに、500 internal server errorに出くわしたことがあるかもしれません。

@app.errorhandler(status_code)
def function_name(error):
    return render_template('xyz.html'),status_code

このとき、無関係なデータを表示するのではなく、エラーの原因を示すシンプルな行があれば十分です。

そこで、Flask Error Handlers の出番です。

Flaskのエラーハンドラを使うことで、以下のことが可能になります。

    1. エラーページの見た目をカスタマイズします。
    1. ユーザに関連するデータのみを表示します。

よくあるHTTPエラー

よく発生するエラーには、以下のようなものがあります。

| HTTPエラーコードの意味

| 301|恒久的に移動されました。

| 302|一時的に移動されました。

HTTP Errors## Flask のエラーハンドリングでハンズオン

エラーコード – 404 と 500 は、私たちが毎日対処する最も一般的なエラーです。

そこで、このセクションでは、404 と 500 のためのシンプルなエラーハンドラを構築します。

他のエラーの構文も全く同じです。

flaskでは、組み込みのerror_handlerデコレータを使用します。

そのシンタックスは

from flask import Flask, render_template
 
app = Flask(__name__)
 
@app.route('/blogs')
def blog():
    return render_template('blog.html')
 
#Handling error 404 and displaying relevant web page
@app.errorhandler(404)
def not_found_error(error):
    return render_template('404.html'),404
 
#Handling error 500 and displaying relevant web page
@app.errorhandler(500)
def internal_error(error):
    return render_template('500.html'),500
 
#app.run(host='localhost', port=5000)
app.run(host='localhost', port=5000)

したがって、次のようなFlaskアプリケーションの例を考えてみましょう。

<h2>Welcome to the Blog</h2>

Blog.htmlです。

<h2>The webpage you are trying is not found</h2>
<img src = "{{url_for('static','images/opps.jpg') }}"

404.htmlファイル。

<h2>Something Went Wrong</h2>

ここでは、404のWebページにも画像を表示しています。

同様に、500.htmlファイルです。

500 Internal Server Error
500 Internal Server Error

インプリメンテーション

サーバを起動し、任意の非実在URLエンドポイントにアクセスします。

404
404

500エラーになるように、render_template()の数文字を意図的にremder_template()と書き換えます。

サーバーを再起動し、”/blogs “のURLにアクセスします。

500エラーのページが表示されます。

500 Error page
500 Error Page

完璧だ!

まとめ

以上です。

これで、エラーページもテーマに合わせてカスタマイズできるようになりました。

Flask についてもっと知りたい方は、他の Flask チュートリアルを参照してください。

それでは、また次の記事でお会いしましょう ハッピーコーディング

タイトルとURLをコピーしました