آموزش جنگو Django | مدیریت خطاها
خطای دسترسی
برای ثبت پاسخ، ابتدا باید در سایت وارد شوید.
مدیریت خطاها در جنگو
در جنگو، مدیریت خطاها به شما کمک میکند تا مشکلات احتمالی در اپلیکیشن را شناسایی و به شکلی مناسب به کاربر نمایش دهید. جنگو به صورت پیشفرض چندین صفحه خطا (مانند ۴۰۴ برای صفحه پیدا نشده و ۵۰۰ برای خطای سرور) دارد که میتوانید آنها را سفارشیسازی کنید.
انواع خطاهای رایج در جنگو:
- ۴۰۴ (صفحه پیدا نشده): زمانی که کاربر به آدرسی دسترسی پیدا کند که وجود ندارد.
- ۴۰۳ (دسترسی ممنوع): زمانی که کاربر مجوز دسترسی به یک صفحه را نداشته باشد.
- ۵۰۰ (خطای سرور): زمانی که یک مشکل داخلی در سرور رخ دهد.
نحوه مدیریت خطاها:
برای سفارشیسازی صفحات خطا، میتوانید فایلهای قالب مخصوص به هر خطا را در پوشه templates ایجاد کنید. نام این فایلها باید به صورت زیر باشد:
404.htmlبرای خطای ۴۰۴500.htmlبرای خطای ۵۰۰403.htmlبرای خطای ۴۰۳
مثال:
<!-- templates/404.html -->
<!DOCTYPE html>
<html>
<head>
<title>صفحه پیدا نشد</title>
</head>
<body>
<h1>خطای ۴۰۴ - صفحه مورد نظر یافت نشد!</h1>
<p>لطفاً آدرس را بررسی کنید یا به صفحه اصلی بازگردید.</p>
</body>
</html>
استفاده از try-except برای مدیریت خطاها در ویوها:
در برخی موارد، ممکن است بخواهید خطاها را در کد خود مدیریت کنید. برای این کار میتوانید از بلوک try-except در ویوها استفاده کنید.
مثال:
from django.shortcuts import render
from django.http import Http404
from .models import Product
def product_detail(request, product_id):
try:
product = Product.objects.get(pk=product_id)
except Product.DoesNotExist:
raise Http404("محصول مورد نظر وجود ندارد!")
return render(request, 'product_detail.html', {'product': product})
با این روش، اگر محصولی وجود نداشته باشد، جنگو به صورت خودکار صفحه 404.html را نمایش میدهد.
مدیریت صحیح خطاها باعث بهبود تجربه کاربری و امنیت اپلیکیشن شما میشود.
برای ثبت پرسش ابتدا در سایت وارد شوید.