متغیرها (Variables)
در قالب های جنگو، «متغیر (Variable)» ظرف کوچکی از داده است. سپس داخل صفحه نمایش داده می شود. مثل نام دانش آموز که روی کارتش می نویسیم و همه می بینند.
نمایش متغیر داخل قالب
برای نمایش متغیر، آن را داخل آکولاد دوتایی {{ }} بگذار.
<h1>Hello {{ firstname }}, how are you?</h1>
فرستادن متغیر از ویو (View)
در ویو، یک «کانتکست (Context)» می سازیم. سپس داده ها را به قالب می فرستیم.
from django.http import HttpResponse
from django.template import loader
def testing(request):
template = loader.get_template('template.html')
context = {
'firstname': 'Linus',
}
return HttpResponse(template.render(context, request))
نکته: کانتکست مثل جعبه هدیه است. داده را داخلش می گذاریم. سپس به قالب می دهیم.
ساخت متغیر داخل قالب با with
می توانی با تگ {% with %} متغیر موقت بسازی. سپس تا {% endwith %} در دسترس است.
{% with firstname="Tobias" %}
<h1>Hello {{ firstname }}, how are you?</h1>
{% endwith %}
گرفتن داده از مدل (Model)
معمولاً داده ها از مدل می آیند. ابتدا مدل Member را ایمپورت کن. سپس لیست اعضا را بگیر.
from django.http import HttpResponse, HttpResponseRedirect
from django.template import loader
from .models import Member
def testing(request):
mymembers = Member.objects.all().values()
template = loader.get_template('template.html')
context = {
'mymembers': mymembers,
}
return HttpResponse(template.render(context, request))
حالا در قالب، با حلقه {% for %} اعضا را نشان بده.
<ul>
{% for x in mymembers %}
<li>{{ x.firstname }}</li>
{% endfor %}
</ul>
نکته: برای تگ های قالب، به صفحه تگ های قالب جنگو برو.
گام های عملی سریع
- یک ویو بساز. سپس کانتکست را پر کن.
- قالب را آماده کن. سپس متغیرها را نمایش بده.
- اگر لازم شد، با with مقدار موقت بساز.
- برای داده واقعی، از مدل Member بخوان.
جمع بندی سریع
- متغیرها با {{ }} نمایش داده می شوند.
- کانتکست، داده را به قالب می رساند.
- with متغیر موقت می سازد.
- اعضا را با {% for %} لیست کن.
ادامه مسیر: حذف اعضا و سپس تگ های قالب جنگو برای ابزارهای بیشتر.