Django 中的templates使用示例詳解
Django的模板系統(tǒng)是一個強大的工具,用于將動態(tài)數(shù)據(jù)渲染到HTML頁面中。以下是Django模板系統(tǒng)的詳細用法:
模板的基本概念
Django模板使用一個特殊的語法來插入變量、標簽和過濾器。
創(chuàng)建模板
創(chuàng)建模板目錄:在你的Django應用中創(chuàng)建一個名為templates的目錄。
編寫模板文件:在templates目錄中創(chuàng)建HTML文件,文件擴展名通常為.html。
模板繼承
Django模板支持繼承,這意味著你可以創(chuàng)建一個基礎模板,并允許其他模板繼承它。
<!-- base.html -->
<html>
<head>
<title>{% block title %}My Site{% endblock %}</title>
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html><!-- child.html -->
{% extends "base.html" %}
{% block title %}Home Page{% endblock %}
{% block content %}
<h1>Welcome to my site!</h1>
{% endblock %}變量
在模板中,變量用{{ variable }}表示。
<p>Hello, {{ name }}!</p>標簽
Django模板提供了許多內(nèi)置標簽,例如for循環(huán)、if條件語句等。
{% if user.is_authenticated %}
<p>Welcome, {{ user.username }}!</p>
{% else %}
<p>Welcome, guest!</p>
{% endif %}過濾器
過濾器可以被用來修改變量的輸出。過濾器使用|符號。
{{ article.pub_date|date:"Y-m-d" }}自定義過濾器
你可以創(chuàng)建自己的過濾器,并在模板中使用它們。
# 在應用的模板tags目錄中創(chuàng)建一個自定義過濾器
from django import template
register = template.Library()
@register.filter(name='my_filter')
def my_filter(value):
return value.upper()然后在模板中使用:
{{ my_variable|my_filter }}模板標簽
模板標簽用于執(zhí)行特定的邏輯。
{% for article in articles %}
<p>{{ article.title }}</p>
{% endfor %}模板中的URL
在模板中,你可以使用url標簽來生成URL。
<a href="{% url 'view_name' arg %}" rel="external nofollow" rel="external nofollow" >Link</a>注釋
在模板中,你可以使用{# ... #}來添加注釋。
{# 這是一個注釋 #}靜態(tài)文件
在模板中,你可以使用{% static %}標簽來引用靜態(tài)文件。
<link rel="stylesheet" href="{% static 'css/style.css' %}" rel="external nofollow" rel="external nofollow" >模板上下文
在視圖中,你可以傳遞一個上下文字典給模板。
from django.shortcuts import render
def my_view(request):
return render(request, 'my_template.html', {'name': 'Kimi'})模板字符串
你可以在模板中使用模板字符串來創(chuàng)建動態(tài)內(nèi)容。
{% with name="Kimi" %}
<p>Hello, {{ name }}!</p>
{% endwith %}模板中的表單
Django模板提供了表單渲染的標簽,例如form標簽和form.as_p。
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>模板中的靜態(tài)方法
在模板中,你可以使用{{ form.field.label_tag }}來渲染字段的標簽。
模板中的循環(huán)
你可以在模板中使用for循環(huán)來迭代數(shù)據(jù)。
<ul>
{% for item in items %}
<li>{{ item.name }}</li>
{% endfor %}
</ul>模板中的條件
你可以在模板中使用if標簽來執(zhí)行條件邏輯。
{% if user.is_authenticated %}
<p>Welcome back, {{ user.username }}!</p>
{% else %}
<p>Please log in.</p>
{% endif %}模板中的注釋
你可以在模板中使用{# ... #}來添加注釋。
{# 這是一個注釋 #}模板中的URL反向解析
你可以使用url標簽來生成URL。
<a href="{% url 'view_name' arg %}" rel="external nofollow" rel="external nofollow" >Link</a>模板中的靜態(tài)文件
你可以使用static標簽來引用靜態(tài)文件。
<link rel="stylesheet" href="{% static 'css/style.css' %}" rel="external nofollow" rel="external nofollow" >模板中的自定義標簽和過濾器
你可以創(chuàng)建自定義標簽和過濾器,并在模板中使用它們。
模板中的模板
你可以在一個模板中包含另一個模板。
{% include "sidebar.html" %}模板中的轉(zhuǎn)義字符
在模板中,你可以使用{{ variable|escape }}來轉(zhuǎn)義HTML。
模板中的緩存
你可以使用{% cache %}標簽來緩存模板的部分內(nèi)容。
{% cache 500 sidebar %}
<!-- 緩存的內(nèi)容 -->
{% endcache %}通過這些基本的用法,你可以創(chuàng)建動態(tài)且功能豐富的Web頁面。
到此這篇關(guān)于Django 中的templates使用詳解的文章就介紹到這了,更多相關(guān)Django templates使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
HTML+JavaScript實現(xiàn)筋斗云導航欄效果
這篇文章主要為大家介紹了如何利用HTML+JavaScript+CSS實現(xiàn)筋斗云導航欄效果,當鼠標經(jīng)過某個li,筋斗云跟著到當前的位置,感興趣的小伙伴可以試一試2022-03-03
js動態(tài)修改input輸入框的type屬性(實現(xiàn)方法解析)
本文是對js動態(tài)修改input輸入框的type屬性的實現(xiàn)方法。進行了詳細的介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-11-11
JavaScript 網(wǎng)頁中實現(xiàn)一個計算當年還剩多少時間的倒數(shù)計時程序
這篇文章主要介紹了JavaScript 網(wǎng)頁中實現(xiàn)一個計算當年還剩多少時間的倒數(shù)計時程序,需要的朋友可以參考下2017-01-01
JavaScript獲取querySelectorAll選中元素的數(shù)量
本文介紹了如何使用JavaScript獲取querySelectorAll選中元素的數(shù)量,核心方法是直接訪問返回對象的length屬性(如document.querySelectorAll('.item').length),文章提供了多種實現(xiàn)方法,需要的朋友可以參考下2026-02-02

