Django 中的templates使用示例詳解
Django的模板系統(tǒng)是一個強(qiáng)大的工具,用于將動態(tài)數(shù)據(jù)渲染到HTML頁面中。以下是Django模板系統(tǒng)的詳細(xì)用法:
模板的基本概念
Django模板使用一個特殊的語法來插入變量、標(biāo)簽和過濾器。
創(chuàng)建模板
創(chuàng)建模板目錄:在你的Django應(yīng)用中創(chuàng)建一個名為templates的目錄。
編寫模板文件:在templates目錄中創(chuàng)建HTML文件,文件擴(kuò)展名通常為.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>標(biāo)簽
Django模板提供了許多內(nèi)置標(biāo)簽,例如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 }}模板標(biāo)簽
模板標(biāo)簽用于執(zhí)行特定的邏輯。
{% for article in articles %}
<p>{{ article.title }}</p>
{% endfor %}模板中的URL
在模板中,你可以使用url標(biāo)簽來生成URL。
<a href="{% url 'view_name' arg %}" rel="external nofollow" rel="external nofollow" >Link</a>注釋
在模板中,你可以使用{# ... #}來添加注釋。
{# 這是一個注釋 #}靜態(tài)文件
在模板中,你可以使用{% static %}標(biāo)簽來引用靜態(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模板提供了表單渲染的標(biāo)簽,例如form標(biāo)簽和form.as_p。
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>模板中的靜態(tài)方法
在模板中,你可以使用{{ form.field.label_tag }}來渲染字段的標(biāo)簽。
模板中的循環(huán)
你可以在模板中使用for循環(huán)來迭代數(shù)據(jù)。
<ul>
{% for item in items %}
<li>{{ item.name }}</li>
{% endfor %}
</ul>模板中的條件
你可以在模板中使用if標(biāo)簽來執(zhí)行條件邏輯。
{% if user.is_authenticated %}
<p>Welcome back, {{ user.username }}!</p>
{% else %}
<p>Please log in.</p>
{% endif %}模板中的注釋
你可以在模板中使用{# ... #}來添加注釋。
{# 這是一個注釋 #}模板中的URL反向解析
你可以使用url標(biāo)簽來生成URL。
<a href="{% url 'view_name' arg %}" rel="external nofollow" rel="external nofollow" >Link</a>模板中的靜態(tài)文件
你可以使用static標(biāo)簽來引用靜態(tài)文件。
<link rel="stylesheet" href="{% static 'css/style.css' %}" rel="external nofollow" rel="external nofollow" >模板中的自定義標(biāo)簽和過濾器
你可以創(chuàng)建自定義標(biāo)簽和過濾器,并在模板中使用它們。
模板中的模板
你可以在一個模板中包含另一個模板。
{% include "sidebar.html" %}模板中的轉(zhuǎn)義字符
在模板中,你可以使用{{ variable|escape }}來轉(zhuǎn)義HTML。
模板中的緩存
你可以使用{% cache %}標(biāo)簽來緩存模板的部分內(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-02
Javascript 實現(xiàn)廣告后加載 可加載百度谷歌聯(lián)盟廣告
本文主要介紹一種新的廣告后加載的方式,支持自定義HTML廣告、百度聯(lián)盟廣告和谷歌聯(lián)盟廣告。這種方式在頁面加載完成后執(zhí)行,不影響內(nèi)容的顯示,對用戶更加友好。2016-05-05
小程序組件傳值和引入sass的方法(使用vant Weapp組件庫)
這篇文章主要介紹了小程序組件傳值和引入sass使用vant Weapp組件庫,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11
javascript函數(shù)自動執(zhí)行常用方法匯總
本文給大家匯總介紹了3種javascript函數(shù)自動執(zhí)行的常用方法,非常的簡單實用,有需要的小伙伴可以參考下2016-03-03
實現(xiàn)div內(nèi)部滾動條滾動到底部和頂部的代碼
下面筆者就為大家分享一篇實現(xiàn)div內(nèi)部滾動條滾動到底部和頂部的代碼,代碼簡潔,具有很好的參考價值,希望對大家有所幫助2017-11-11

