کار با قالب‌ها و ویوها در جنگو

django prepare template view
20 آبان 1403

قالب‌ها و ویوها در جنگو

جنگو، به عنوان یک چارچوب قدرتمند برای توسعه وب، امکانات زیادی برای مدیریت قالب‌ها و ویوها ارائه می‌دهد. در این مطلب، می‌خوایم بریم سراغ نحوه‌ی آماده‌سازی قالب‌ها و استفاده از اون‌ها توی ویوها. این یه مبحث بسیار مهمه، چون به توسعه‌دهنده‌ها اجازه میده تا صفحات وب رو با ساختاردهی مناسب و جدایی منطق برنامه‌نویسی از نمایش، طراحی کنن.

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

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

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


from django.shortcuts import render

def my_view(request):
    context = {
        'title': 'صفحه اصلی',
        'message': 'خوش آمدید به سایت ما!'
    }
    return render(request, 'index.html', context)
    

توضیح کد

from django.shortcuts import render
این خط کتابخانه render رو از ماژول shortcuts جنگو وارد می‌کنه که به ما کمک می‌کنه برای رندر کردن قالب‌ها استفاده کنیم.

def my_view(request):
یک تابع تعریف می‌کنه که به عنوان ویو عمل می‌کنه. این تابع یک شیء request رو می‌پذیره که شامل اطلاعاتی از درخواست HTTP کاربر هست.

context = {...}
در اینجا، یک فرهنگ‌لغت (دیکشنری) ساخته میشه که شامل کلید و مقدار برای داده‌هایی است که می‌خوایم به قالب ارسال کنیم.

return render(request, 'index.html', context)
تابع render فراخوانده میشه تا قالب 'index.html' به همراه اطلاعات context به مرورگر ارسال بشه.

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

؟

چطور می‌تونم یک ویو جدید در جنگو ایجاد کنم؟

؟

قالب‌ها در جنگو چطور کار می‌کنند؟