Django 中的templates使用示例詳解
Django的模板系統(tǒng)是一個強大的工具,用于將動態(tài)數(shù)據(jù)渲染到HTML頁面中。以下是Django模板系統(tǒng)的詳細用法:
模板的基本概念
Django模板使用一個特殊的語法來插入變量、標簽和過濾器。
創(chuàng)建模板
創(chuàng)建模板目錄:在你的Django應(yīng)用中創(chuàng)建一個名為templates
的目錄。
編寫模板文件:在templates
目錄中創(chuàng)建HTML文件,文件擴展名通常為.html
。
模板繼承
Django模板支持繼承,這意味著你可以創(chuàng)建一個基礎(chǔ)模板,并允許其他模板繼承它。
<!-- 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)建自己的過濾器,并在模板中使用它們。
# 在應(yī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)文章
JavaScript利用crypto模塊實現(xiàn)加解密
crypto模塊提供了加密功能,包含對 OpenSSL 的哈希、HMAC、加密、解密、簽名、以及驗證功能的一整套封裝。本文將利用它實現(xiàn)加解密算法,需要的可以參考一下2023-02-02Javascript 實現(xiàn)廣告后加載 可加載百度谷歌聯(lián)盟廣告
本文主要介紹一種新的廣告后加載的方式,支持自定義HTML廣告、百度聯(lián)盟廣告和谷歌聯(lián)盟廣告。這種方式在頁面加載完成后執(zhí)行,不影響內(nèi)容的顯示,對用戶更加友好。2016-05-05小程序組件傳值和引入sass的方法(使用vant Weapp組件庫)
這篇文章主要介紹了小程序組件傳值和引入sass使用vant Weapp組件庫,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11javascript函數(shù)自動執(zhí)行常用方法匯總
本文給大家匯總介紹了3種javascript函數(shù)自動執(zhí)行的常用方法,非常的簡單實用,有需要的小伙伴可以參考下2016-03-03實現(xiàn)div內(nèi)部滾動條滾動到底部和頂部的代碼
下面筆者就為大家分享一篇實現(xiàn)div內(nèi)部滾動條滾動到底部和頂部的代碼,代碼簡潔,具有很好的參考價值,希望對大家有所幫助2017-11-11