تعریف ویوهای تابعی

ویوهای تابعی در جنگو: قلب منطق برنامه‌های وب

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


ساختار پایه یک ویو تابعی

یک ویو تابعی در جنگو، تابعی پایتونی است که:

  • پارامتر request را دریافت می‌کند (حاوی اطلاعات درخواست کاربر)
  • پردازش‌های لازم را انجام می‌دهد
  • یک شیء HttpResponse بازمی‌گرداند
مثال ساده:
from django.http import HttpResponse

def hello_world(request):
    return HttpResponse("سلام دنیا!")
مولفه توضیح
request شیء حاوی اطلاعات درخواست HTTP (متد، هدرها، کوکی‌ها و...)
HttpResponse کلاس پایه برای بازگرداندن پاسخ به کاربر

انواع ویوهای تابعی

  1. ویوهای ساده: نمایش محتوای ثابت بدون پردازش خاص
  2. ویوهای پردازشی: انجام عملیات روی داده‌های دریافتی
  3. ویوهای فرم‌محور: مدیریت ارسال و اعتبارسنجی فرم‌ها
  4. ویوهای مبتنی بر مدل: تعامل با پایگاه داده

برای مثال، یک ویو پردازشی می‌تواند پارامترهای GET را تحلیل کند:

def greet_user(request):
    name = request.GET.get('name', 'کاربر')
    return HttpResponse(f"سلام {name}!")

برای یادگیری تکنیک‌های پیشرفته‌تر می‌توانید بیشتر بخوانید.

مزایای ویوهای تابعی

  • سادگی و خوانایی بالا
  • انعطاف‌پذیری در پیاده‌سازی منطق سفارشی
  • یادگیری آسان برای توسعه‌دهندگان تازه‌کار
  • کنترل دقیق روی فرآیند پردازش درخواست
ویوهای تابعی نقطه شروع ایده‌آلی برای درک مفاهیم پایه‌ای جنگو هستند و حتی در پروژه‌های حرفه‌ای نیز برای موارد ساده کاربرد دارند.

در پروژه‌های واقعی، معمولاً ویوهای تابعی در فایل views.py هر اپلیکیشن قرار می‌گیرند و از طریق فایل urls.py به آدرس‌های خاصی نگاشت می‌شوند.