X

آموزش جنگو 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 را نمایش می‌دهد.

مدیریت صحیح خطاها باعث بهبود تجربه کاربری و امنیت اپلیکیشن شما می‌شود.

پرسش و پاسخ این درس

برای ثبت پرسش ابتدا در سایت وارد شوید.

  • 1
  • 2
  • 3