新聞中心
語法
Django 模板是使用 Django 模板語言標記的一個文本文檔或Python字符串。模板引擎可以識別和解釋一些構(gòu)造。主要是變量和標簽。

在墨江等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、做網(wǎng)站、外貿(mào)營銷網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需搭建網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷推廣,外貿(mào)網(wǎng)站建設(shè),墨江網(wǎng)站建設(shè)費用合理。
模板是通過上下文來渲染的。渲染用變量的值替換變量,變量的值在上下文中查找,并執(zhí)行標簽。其他的一切都按原樣輸出。
Django 模板語言的語法涉及四個構(gòu)造。
變量
變量從上下文中輸出一個值,上下文是一個類似于字典的對象,將鍵映射到值。
變量被 ?{{? 和? }} ?包圍,如下所示:
My first name is {{ first_name }}. My last name is {{ last_name }}.在上下文為 ?{'first_name': 'John', 'last_name': 'Doe'}? 的情況下,該模板渲染為:
My first name is John. My last name is Doe.字典查找,屬性查找和列表索引查找均以點符號實現(xiàn):
{{ my_dict.key }}
{{ my_object.attribute }}
{{ my_list.0 }}如果變量解析為可調(diào)用對象,則模板系統(tǒng)將不帶任何參數(shù)的情況下調(diào)用它,并使用其結(jié)果代替可調(diào)用對象。
標簽
標簽在渲染過程中提供了任意邏輯。
這個定義是故意含糊的。例如,標簽可以輸出內(nèi)容,或用作控制結(jié)構(gòu)如?if?語句和 ?for ?循環(huán),或從數(shù)據(jù)庫中抓取內(nèi)容,甚至可以訪問其他模板標簽。
標簽被 ?{%? 和 ?%}? 包圍,如下所示:
{% csrf_token %}大多數(shù)標簽都接受參數(shù):
{% cycle 'odd' 'even' %}一些標簽需要開始和結(jié)束標簽:
{% if user.is_authenticated %}Hello, {{ user.username }}.{% endif %}
過濾器
過濾器轉(zhuǎn)換變量和標簽參數(shù)的值。
它們看起來像這樣:
{{ django|title }}在 ?{'django': 'the web framework for perfectionists with deadlines'}? 的上下文中,這個模板渲染為:
The Web Framework For Perfectionists With Deadlines有些過濾器需要一個參數(shù):
{{ my_date|date:"Y-m-d" }}
注釋
{# this won't be rendered #}?{% comment %}? 標簽提供多行注釋。
組件
引擎
?django.template.Engine? 封裝了 Django 模板系統(tǒng)的實例。直接實例化 ?Engine ?的主要原因是為了在 Django 項目之外使用 Django 模板語言。
?django.template.backends.django.DjangoTemplates? 是一個簡單封裝,使 ?django.template.Engine? 適應(yīng) Django 的模板后端API。
模板
?django.template.Template? 代表已編譯的模板。模板可以通過 ?Engine.get_template()? 或 ?Engine.from_string()? 獲得。
同樣 ?django.template.backends.django.Template? 是一個簡單封裝,使 ?django.template.Template? 適應(yīng)通用模板 API。
上下文
?django.template.Context? 除了上下文數(shù)據(jù)外,還保存了一些元數(shù)據(jù)。它被傳遞給 ?Template.render()? 來渲染模板。
?django.template.RequestContext? 是 ?Context ?的子類,它儲存當前的 ?HttpRequest ?并運行模板上下文處理器。
通用 API 沒有對應(yīng)的概念。上下文數(shù)據(jù)以普通的 ?dict ?傳遞,而當前的 ?HttpRequest ?則根據(jù)需要單獨傳遞。
加載器
模板加載器負責定位模板,加載模板,并返回 ?Template ?對象。
Django 提供了幾個 內(nèi)建模板加載器 并且支持 自定義模板加載器。
上下文處理器
上下文處理器是接收當前的 ?HttpRequest ?作為參數(shù),并返回一個 ?dict ?的數(shù)據(jù)添加到渲染上下文的函數(shù)。
它們的主要用途是將所有模板共享的通用數(shù)據(jù)添加到上下文中,而無需在每個視圖中重復(fù)代碼。
Django 提供了許多 內(nèi)置上下文處理器,你也可以實現(xiàn)自己的其他上下文處理器。
名稱欄目:創(chuàng)新互聯(lián)Django4.0教程:Django4.0模板-Django模板語言
本文網(wǎng)址:http://m.fisionsoft.com.cn/article/dpggdee.html


咨詢
建站咨詢
