تگهای قالب Django

تگهای قالب Django ابزاری قدرتمند برای اضافه کردن منطق و محتوای پویا به قالبهای جنگو هستند. این تگها امکان دستکاری دادهها و کنترل نحوه نمایش HTML را فراهم میکنند. در زیر انواع مختلف این تگها و کاربرد آنها توضیح داده شده است:
1. تگهای استاندارد قالب
این تگها به صورت پیشفرض در Django موجود هستند و قابلیتهای پایهای ارائه میدهند.
مثالها:
{% for %}
: برای پیمایش روی یک لیست.
{% for item in items %}
<p>{{ item }}</p>
{% endfor %}
{% if %}
: برای ایجاد شرط.
{% if user.is_authenticated %}
<p>خوش آمدید، {{ user.username }}!</p>
{% else %}
<p>لطفاً وارد شوید.</p>
{% endif %}
- **
{% block %}
و{% extends %}
: برای وراثت قالبها.
{% block content %}
<h1>محتوای صفحه</h1>
{% endblock %}
2. فیلترها در تگهای قالب
فیلترها برای تغییر نحوه نمایش متغیرها استفاده میشوند و با نماد |
به کار میروند.
مثالها:
date
: برای فرمت تاریخ.
{{ post.published_date|date:”F j, Y” }}
length
: برای دریافت طول لیست یا رشته.
{{ items|length }}
3. تگهای سفارشی قالب
برای عملکردهای پیشرفته میتوانید تگهای سفارشی خود را بسازید.
مراحل ساخت:
- یک پوشه به نام
templatetags
در برنامه خود ایجاد کنید. - یک فایل پایتون مثلاً
custom_tags.py
اضافه کنید. - تگهای سفارشی خود را ثبت کنید.
مثال:
custom_tags.py
from django import template
register = template.Library()
@register.simple_tag
def multiply(a, b):
return a * b
- استفاده در قالب:
{% load custom_tags %}
{% multiply 5 3 %}
4. تگهای درج (Inclusion Tags)
برای اضافه کردن یک بخش قالب همراه با دادههای خاص استفاده میشود.
مثال:
@register.inclusion_tag(‘menu.html’)
def show_menu(items):
return {‘items’: items}
استفاده در قالب:
{% show_menu menu_items %}
5. تگهای پیشفرض مهم
{% static %}
: برای استفاده از فایلهای استاتیک.
<img src=“{% static ‘images/logo.png’ %}” alt=“لوگو”>
{% csrf_token %}
: برای اضافه کردن محافظت CSRF در فرمها.
<form method=“post”>
{% csrf_token %}
<input type=“text” name=“name”>
</form>
{% url %}
: برای ایجاد لینکهای پویا.
<a href=“{% url ‘app_name:view_name’ param %}”>لینک</a>
خلاصه
تگهای قالب جنگو امکان اضافه کردن منطق پویا به قالبها را فراهم میکنند، در حالی که منطق و طراحی را از هم جدا نگه میدارند. برای کاربردهای پیشرفتهتر، تگهای سفارشی میتوانند به طور قابلتوجهی قابلیتها را گسترش دهند.
دیدگاهتان را بنویسید