آشنایی با تابع 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)
اجرا کردن اپلیکیشن در حالت دیباگ که امکان شناسایی خطاها را فراهم میکند.