天天看點

python django常用模闆标簽指令及應用

#頭條創作挑戰賽#

在Django中,有一些常用的模闆标簽指令可以在模闆中使用來完成一些常見的操作。

python django常用模闆标簽指令及應用

常用的Django模闆标簽指令:

{% if %}: 條件判斷,根據條件的真假來顯示不同的内容。

{% if condition %}
    <!-- 内容1 -->
{% else %}
    <!-- 内容2 -->
{% endif %}           

{% for %}: 循環疊代,用于周遊一個可疊代對象(如清單、字典等)中的元素。

{% for item in iterable %}
    <!-- 循環體 -->
{% endfor %}           

{% block %}和{% extends %}: 用于實作模闆繼承,可以在一個基礎模闆中定義一個或多個可被子模闆覆寫的塊。

<!-- 基礎模闆 base.html -->
{% block content %}
    <!-- 基礎模闆中的内容 -->
{% endblock %}

<!-- 子模闆使用繼承 -->
{% extends 'base.html' %}
{% block content %}
    <!-- 子模闆中的内容 -->
{% endblock %}           

{% include %}: 用于包含其他模闆檔案的内容,可以在一個模闆中引用另一個模闆的内容。

{% include 'header.html' %}           

{% url %}: 用于生成URL,可以通過傳遞視圖函數名和參數來生成對應的URL路徑。

<a href="{% url 'app:view' param %}">Link</a>           

{% csrf_token %}: 用于生成跨站請求僞造(CSRF)防護令牌,可以在表單送出時添加CSRF令牌。

<form method="POST">
    {% csrf_token %}
    <!-- 表單内容 -->
</form>           

{% static %}: 用于生成靜态檔案的URL路徑,可以引用項目中的靜态檔案(如CSS、JavaScript等)。

<link rel="stylesheet" href="{% static 'css/style.css' %}">           

這些是Django中一些常用的模闆标簽指令,可以根據需求靈活使用來實作模闆中的各種功能。

應用示例

1)首先,在Django項目中建立一個名為myapp的應用程式,并在應用程式的目錄下建立一個模闆檔案mytemplate.html,内容如下:

<!DOCTYPE html>
<html>
<head>
    <title>My Template</title>
</head>
<body>
    <h1>Welcome, {{ username }}!</h1>

    {% if is_admin %}
    <p>You have admin privileges.</p>
    {% else %}
    <p>You do not have admin privileges.</p>
    {% endif %}

    <ul>
    {% for item in items %}
        <li>{{ item }}</li>
    {% endfor %}
    </ul>

    {% block content %}
    <!-- 基礎模闆中的内容 -->
    {% endblock %}

    <form method="POST">
        {% csrf_token %}
        <input type="text" name="username">
        <input type="submit" value="Submit">
    </form>

    <link rel="stylesheet" href="{% static 'css/style.css' %}">
</body>
</html>           

2)在myapp應用程式中建立一個視圖函數myview,并使用render函數渲染模闆:

from django.shortcuts import render

def myview(request):
    username = 'John'
    is_admin = True
    items = ['Item 1', 'Item 2', 'Item 3']
    return render(request, 'mytemplate.html', {'username': username, 'is_admin': is_admin, 'items': items})           

3)在項目的URL配置中将myview與一個URL路徑關聯起來。

在上述示例中,模闆檔案mytemplate.html使用了多個Django模闆标簽指令來完成不同的操作:

  • 通過{{ username }}和{% if is_admin %}可以根據使用者是否具有管理者權限,顯示不同的内容。
  • 使用{% for item in items %}來循環周遊items清單中的元素,并将每個元素顯示為一個清單項。
  • 使用{% block content %}和{% endblock %}來定義一個可以被子模闆覆寫的塊。
  • 使用{% csrf_token %}來生成一個CSRF令牌,以提供在表單送出時進行CSRF防護。
  • 使用{% static 'css/style.css' %}來生成靜态檔案的URL路徑,引用了項目中的CSS樣式表。

以上是一個使用常用的Django模闆标簽指令的完整示例,可以根據實際需求進行擴充和修改。