معرفی تمپلیت‌های جنگو

django template introduction
20 آبان 1403

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

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

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

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

مثال کد تمپلیت در جنگو

<!-- my_template.html -->
<html>
<head>
<title>صفحه اصلی</title>
</head>
<body>
<h1>سلام، به سایت ما خوش آمدید!</h1>
<ul>
{% for item in item_list %}
<li>{{ item.name }}</li>
{% endfor %}
</ul>
</body>
</html>

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

<!-- my_template.html -->
این خط عنوان و توضیحی درباره فایل تمپلیت است.

<html>
شروع سند HTML.

<head>
بخش هد سند، شامل تنظیمات متا و عنوان صفحه.

<title>صفحه اصلی</title>
عنوان صفحه که در تب مرورگر نمایش داده می‌شود.

<body>
بخش اصلی محتوای صفحه که در مرورگر نمایش داده می‌شود.

<h1>سلام، به سایت ما خوش آمدید!</h1>
عنوان اصلی صفحه.

<ul>
شروع یک لیست بدون شماره.

{% for item in item_list %}
شروع یک حلقه برای عبور از روی هر عنصر در item_list.

<li>{{ item.name }}</li>
نمایش نام هر آیتم در یک عنصر لیست <li>.

{% endfor %}
پایان حلقه for.

</body>
پایان بخش بادی.

</html>
پایان سند HTML.

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

؟

چگونه یک تمپلیت پایه در جنگو بسازیم؟

؟

آیا می‌توانیم در تمپلیت‌های جنگو منطق شرطی استفاده کنیم؟

؟

چگونه اطلاعات از View به تمپلیت منتقل می‌شود؟