توضیح و استفاده از متغیرها در جنگو

django variables guide
20 آبان 1403

مقدمه‌ای بر متغیرها در جنگو

جنگو یا به انگلیسی Django یکی از محبوب‌ترین فریم‌ورک‌های وب است که با زبان برنامه‌نویسی پایتون نوشته شده. یکی از پایه‌های اصلی هر زبان برنامه‌نویسی، متغیرها هستند. در جنگو، متغیرها نقشی کلیدی در ذخیره و مدیریت داده‌ها بازی می‌کنند. با کمک متغیرها، می‌توانیم داده‌ها را در طول فرایند درخواست و پاسخ حفظ و به‌کارگیری کنیم.

متغیرها در جنگو بیشتر در قالب کلاس‌های مدل (Model Classes) تعریف می‌شوند. این کلاس‌ها به ما امکان می‌دهند تا ساختار داده‌های برنامه را مشخص و مدل‌سازی کنیم. هر مدل جنگو به نوعی نشان‌دهنده یک جدول در پایگاه داده است و متغیرها در قالب فیلدهای مدل ذخیره می‌شوند.

متغیرها نه تنها در مدل‌ها، بلکه در قالب View ها و Template ها نیز به‌کار می‌روند. در View ها می‌توانیم با تعریف متغیرها داده‌های لازم برای ارائه به کاربر را مدیریت کنیم. از سوی دیگر، در Template ها متغیرها برای نمایش داده‌های داینامیک به کاربر استفاده می‌شوند. به این ترتیب می‌توانیم داده‌ها را از View به Template انتقال دهیم.

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

کار با متغیرها در Template های جنگو

در جنگو، Template ها برای نمایش داده‌ها به کاربران استفاده می‌شوند. یکی از روش‌های معمول انتقال داده به کاربر، استفاده از متغیرها در قالب Template ها است. برای اینکار، کافیست متغیر مورد نظر را در فایل HTML تعریف کنیم و از آن استفاده کنیم.

مثال عملی از متغیرها در جنگو

views.py:
from django.shortcuts import render

def home(request):
context = { 'name': 'Ali', 'age': 30 }
return render(request, 'home.html', context)
home.html:
<!DOCTYPE html>
<html>
<head><title>خانه</title></head>
<body>
<h2>خوش آمدید، {{ name }}!</h2>
<p>سن شما: {{ age }}</p>
</body>
</html>

توضیح خط به خط کد:

from django.shortcuts import render
ماژول render برای رندرینگ Template ها استفاده می‌شود.

def home(request):
تعریف یک View به نام home که درخواست کاربر را مدیریت می‌کند.

context = { 'name': 'Ali', 'age': 30 }
ایجاد یک دیکشنری به نام context که داده‌ها را ذخیره می‌کند.

return render(request, 'home.html', context)
رندر کردن فایل home.html به همراه داده‌های context.

کدهای داخلی home.html
استفاده از متغیرهای name و age در قالب HTML برای نمایش اطلاعات کاربر.

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

؟

چگونه می‌توانم متغیری را در Template جنگو استفاده کنم؟

؟

آیا می‌توان اطلاعات کاربر را با متغیرها ذخیره کرد؟

؟

چگونه می‌توان متغیرهای محیطی را در پروژه جنگو مدیریت کرد؟

؟

چگونه می‌توان داده‌ها را بین View ها و Template ها انتقال داد؟