مدیریت خطاها در Flask 3.0 با استفاده از تابع register_error_handler()

flask 3 0 register error handler
04 تیر 1404

آشنایی با تابع register_error_handler() در Flask 3.0

Flask یکی از محبوب‌ترین فریمورک‌های وب برای پایتون است که به توسعه‌دهندگان این امکان را می‌دهد که به‌راحتی و به شکلی سریع، برنامه‌های وب بسازند. یکی از قابلیت‌های بسیار جالب این فریمورک، سیستم مدیریت خطاهاست. در نسخه جدید Flask 3.0، تابع register_error_handler() به ما اجازه می‌دهد تا بتوانیم خطاهای خاصی را مدیریت کنیم و رفتار خاصی برای هر نوع خطا تعریف کنیم.

با استفاده از این تابع، شما می‌توانید به‌سادگی یک تابع سفارشی برای مدیریت خطاها ایجاد کنید. به عنوان مثال، اگر بخواهید یک خطای خاص مثل 404 (یافت نشد) را مدیریت کنید، می‌توانید تابعی بسازید که به جای نمایش پیام پیش‌فرض، یک صفحه سفارشی را نشان دهد. اینکار به بهبود تجربه کاربری وب‌سایت شما کمک می‌کند.

ساختار کلی استفاده از register_error_handler() به این صورت است که شما نوع خطای مورد نظر را مشخص می‌کنید و سپس تابعی که قرار است در زمان وقوع آن خطا فراخوانی شود را ثبت می‌کنید. این کار بسیار ساده است و می‌تواند به پروژه‌های شما کمک کند تا به طور حرفه‌ای‌تری به خطاها پاسخ دهند.

در ادامه، به یک مثال عملی خواهیم پرداخت که در آن نحوه استفاده از این تابع را نشان خواهیم داد. این مثال به شما کمک می‌کند تا مفاهیم را کاملاً درک کنید و بتوانید آن را در پروژه‌های خود پیاده‌سازی کنید.

کد نمونه

from flask import Flask, jsonify

app = Flask(__name__)

@app.route("/")
def hello():
return "سلام دنیا!"

@app.errorhandler(404)
def not_found(e):
return jsonify(error="این صفحه موجود نیست!"), 404

if __name__ == '__main__':
app.run(debug=True)

توضیحات کد

در اینجا، ما ابتدا Flask را وارد کرده و یک برنامه ساده ایجاد می‌کنیم:

from flask import Flask, jsonify

ما باید Flask و jsonify را از پکیج Flask وارد کنیم تا بتوانیم از آن‌ها استفاده کنیم.


app = Flask(__name__)

ایجاد یک شیء از کلاس Flask که نماینده اپلیکیشن ماست.


@app.route("/")

تعریف یک مسیر اصلی برای اپلیکیشن که وقتی کاربر به آدرس اصلی (/) مراجعه کند، اجرا می‌شود.


def hello():

این تابع یک سلام ساده را به کاربر نمایش می‌دهد.


@app.errorhandler(404)

این خط مشخص می‌کند که ما چه خطای 404 را مدیریت خواهیم کرد.


def not_found(e):

تعریف یک تابع برای مدیریت خطای 404.


return jsonify(error="این صفحه موجود نیست!"), 404

فرستادن یک پاسخ JSON با پیام خطای سفارشی و کد وضعیت 404 به کاربر.


if __name__ == '__main__':

برنامه تنها زمانی اجرا می‌شود که به‌صورت مستقیم اجرا شود.


app.run(debug=True)

اجرا کردن اپلیکیشن در حالت دیباگ که امکان شناسایی خطاها را فراهم می‌کند.


سوالات متداول

؟

چطور می‌توانم خطاهایی غیر از 404 را نیز مدیریت کنم؟

؟

آیا می‌توانم چندین تابع برای مدیریت خطاها داشته باشم؟

؟

چگونه می‌توانم خطاهای برقرار شده در کتابخانه‌های دیگر را مدیریت کنم؟