Flask は人気のある Python Web フレームワークであり、その柔軟性と拡張性により、多くの人に好まれるフレームワークとなっています。 Web アプリケーションを開発すると、リクエスト エラー、サーバー エラー、ハンドルされない例外など、多くの問題が発生することがあります。この投稿では、Flask のエラー処理テクニックを使用してこれらの問題を処理する方法を検討します。
Flask アプリケーションでは、デコレータ @app.errorhandler()
を使用してアプリケーション レベルのエラーを処理できます。 。 @app.errorhandler()
処理するエラーの種類を示すパラメータを受け入れます。たとえば、次のコードをアプリケーションに追加して 500 エラーを処理できます。
@app.errorhandler(500) def handle_500_error(error): return "Sorry, there was a server error.", 500
アプリケーションで 500 エラーが発生すると、Flask は handle_500_error()
関数を呼び出してエラーを処理します。エラーが発生し、HTTP 応答が返されます。
Flask では、ブループリントはビュー関数、テンプレート、静的ファイルをまとめて編成するアーキテクチャです。特定のブループリントでエラーを処理する必要がある場合は、同じトリックを使用できます。つまり、errorhandler()
デコレータを使用します。
from flask import Blueprint, jsonify bp = Blueprint('api', __name__, url_prefix='/api') @bp.errorhandler(404) def handle_404_error(error): return jsonify({'error': 'Not found'}), 404
上記の例では、一部のリクエストがブループリント api
に適用されるが、リクエストされたリソースが存在しないか利用できない場合、Flask は handle_404_error()
を呼び出します。 404 HTTP 応答。
view 関数でエラーを処理したい場合は、abort()
関数を使用できます。アクションを直ちに中止し、特定のエラーをスローし、指定されたエラー メッセージを返します。
from flask import abort @app.route('/user/<id>') def get_user(id): user = User.query.get(id) if not user: abort(404, description="User does not exist") return render_template('user.html', user=user)
上記の例では、指定された ID を持つユーザーが存在するかどうかを確認します。そうでない場合、abort(404)
関数は 404 エラーをスローし、アクションを中止し、404 エラー ページをユーザーに返します。カスタム エラー メッセージは、description
パラメータを使用して渡すことができます。
最後に、エラー ページをカスタマイズすることで、リクエスト中に発生するエラーを処理できます。 Flask は、エラー ページを指定する簡単な方法を提供します:
@app.errorhandler(404) def not_found_error(error): return render_template('404.html'), 404
上の例では、指定された 404.html# をユーザーに提示するために
404 エラー処理関数を定義しました。 ##ページ。このページでは、探しているページが存在しないことをユーザーに通知する、類似のページや Web サイトを推奨する、他のページへのリンクを提供するなどのカスタム情報を追加できます。
以上がFlask エラー処理スキルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。