如何理解Django4.1_template中的變量和過濾器-創(chuàng)新互聯(lián)

本篇文章為大家展示了如何理解Django4.1_template中的變量和過濾器,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

創(chuàng)新互聯(lián)建站是創(chuàng)新、創(chuàng)意、研發(fā)型一體的綜合型網(wǎng)站建設(shè)公司,自成立以來公司不斷探索創(chuàng)新,始終堅(jiān)持為客戶提供滿意周到的服務(wù),在本地打下了良好的口碑,在過去的十載時(shí)間我們累計(jì)服務(wù)了上千家以及全國(guó)政企客戶,如成都門窗定制等企業(yè)單位,完善的項(xiàng)目管理流程,嚴(yán)格把控項(xiàng)目進(jìn)度與質(zhì)量監(jiān)控加上過硬的技術(shù)實(shí)力獲得客戶的一致贊揚(yáng)。

一.簡(jiǎn)述
在現(xiàn)在的web實(shí)際開發(fā)中,為了更加規(guī)范的編碼及方便后期的項(xiàng)目規(guī)劃,我們要求前后端分離,前端更進(jìn)一步要求布局(HTML)、樣式(CSS)、行為(JS)分離。在django中,我們把template分離出來作為一個(gè)獨(dú)立的模塊來處理HTML。本章節(jié)主要講解django中的template模塊的使用。
二.模板語法
模板組成:HTML+邏輯代碼
三.模板之邏輯代碼
1.模板渲染的原理
兩個(gè)概念:
template:模板
context:上下文
渲染原理(過程):
A.Django先通過Template生成一個(gè)實(shí)例化template對(duì)象;
B.Diango再通過Context生成一個(gè)實(shí)例化context對(duì)象;
C.Djangi通過template實(shí)例調(diào)用渲染方法(例如:render())來渲染生成結(jié)果;
如圖:
如何理解Django4.1_template中的變量和過濾器
代碼塊如下:

from django.template import Template,Context
template = Template("welcome to {{name}}.")
context = Context({'name':'浙江'})
template.render(context)
'welcome to 浙江.'

注:以上的過程是在django內(nèi)部實(shí)現(xiàn)的,比較復(fù)雜,所以我們直接使用django封裝好的方法實(shí)現(xiàn)該效果即可,即render(request,’template對(duì)象文件’,data)或render(request,’template對(duì)象文件’,local())
同一個(gè)模板對(duì)象可以重復(fù)使用。
2.模板之變量
2.1格式:{{varname}}
在HTML中使用雙引號(hào)包裹變量名,再通過view中將變量對(duì)應(yīng)的值傳過來(傳值有兩種方式:1.{key:value};2.locals())。
實(shí)例代碼如下:
如何理解Django4.1_template中的變量和過濾器
如何理解Django4.1_template中的變量和過濾器
如何理解Django4.1_template中的變量和過濾器
2.2變量的類型及變量深度查詢
變量可以是字符串、字典、列表、元組、對(duì)象等等。
如圖:
如何理解Django4.1_template中的變量和過濾器

如何理解Django4.1_template中的變量和過濾器
頁面效果圖:
如何理解Django4.1_template中的變量和過濾器
注:在template中使用的均是深度查詢,即只能通過符號(hào).(點(diǎn))進(jìn)行下一級(jí)查詢且所有的序列數(shù)據(jù)類型均能使用索引正常查詢但不能使用方括號(hào)的格式,只能使用var.index的格式,不能使用var[index]或dic[key]的格式。
2.3
3.模板之過濾器
注:該部分圖片來自網(wǎng)絡(luò)(如有侵權(quán),聯(lián)系刪除)
如何理解Django4.1_template中的變量和過濾器
如何理解Django4.1_template中的變量和過濾器
如何理解Django4.1_template中的變量和過濾器
如何理解Django4.1_template中的變量和過濾器
如何理解Django4.1_template中的變量和過濾器

4.重點(diǎn):自定義過濾器filter
上面給去了一些常用的過濾器,也是django給我們提供好的方法,但是如果需要某些特定功能的函數(shù)呢?而django只是提供了公用的方法,此時(shí)我們可以使用django的filter的自定義方法。
1.首先需要使用的app中創(chuàng)建templatetags模塊(必須要有且為Package文件類型)
2.在templatetags模塊中新建任意.py文件,如:mytags.py
3.在py文件中自定義相應(yīng)的filter函數(shù)代碼,如下所示:

from django import template
from django.utils.safestring import mark_safe
register = template.Library()       #register的名字是固定的,不可改變

#自定義一個(gè)multi函數(shù)
@register.filter
def multi(x,y):         #自定義過濾器函數(shù)
    return x*y

#自定義一個(gè)multi函數(shù)
@register.simple_tag
def tag_multi(x,y,z):       #自定義標(biāo)簽函數(shù)
    return x*y*z

4.在要使用自定義的filter函數(shù)的HTML文件中導(dǎo)入之前創(chuàng)建的mytags.py文件,即:{% load mytags %}

{% load mytags %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>myfilter</title>
</head>
<body>
    <p>{{ person.name }}的年齡為:{{ person.age}}</p>
    <p>{{ person.name }}的年齡*10為:{{ person.age|multi:10 }}</p>
</body>
</html>

5.在該HTML文件中使用自定義filter函數(shù),如下:

{% load mytags %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>myfilter</title>
</head>
<body>
    <p>{{ person.name }}的年齡為:{{ person.age}}</p>
    <p>{{ person.name }}的年齡*10為:{{ person.age|multi:10 }}</p>       {# 使用自定義的filter函數(shù) #}
</body>
</html>

6.注意:a要在setting中的INSTALLED_APPS配置當(dāng)前的app,如下圖,不然django會(huì)無法找到自定義的mytags.py文件。b.新建mytags.py文件后重啟該項(xiàng)目;c.filter函數(shù)只能接收2個(gè)參數(shù)(大括號(hào)|前面一個(gè)為此處的第一個(gè)參數(shù))。
如何理解Django4.1_template中的變量和過濾器

7.最終在瀏覽器上顯示效果如圖所示:
如何理解Django4.1_template中的變量和過濾器

8.總結(jié)圖:
如何理解Django4.1_template中的變量和過濾器

上述內(nèi)容就是如何理解Django4.1_template中的變量和過濾器,你們學(xué)到知識(shí)或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識(shí)儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前文章:如何理解Django4.1_template中的變量和過濾器-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://muchs.cn/article26/eejjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、云服務(wù)器、網(wǎng)站建設(shè)、服務(wù)器托管、ChatGPT、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)