日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

过滤器和标签

發(fā)布時(shí)間:2024/7/5 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 过滤器和标签 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1 模版簡(jiǎn)介

?????????????????? DTL:django模板語(yǔ)言

?????????????????? 核心:

??????????????????????????? 變量 {{ }}

??????????????????????????? 標(biāo)簽 {% %}

??????????????????

???????? 2 模版語(yǔ)法之變量

?????????????????? -變量渲染:{{變量}}

?????????????????? -變量深度查詢:{{變量.索引/key值/方法}}

?

def index(request):

??? age=18

??? name='lqzzzzzzzzzzzzzzz'

??? name2='lqz is very big'

??? dic={'name':'lqz','age':18,'hobby':['play','game']}

??? ll=['lqz',18,'ppp',123]

??? ll3=[[1,5,3],[6,9]]

??? ll2=[]

??? href='<a href="http://www.baidu.com">點(diǎn)我看美女</a>'

??? href2=mark_safe(href)

??? ctime=datetime.datetime.now()

??? file_size=102453425342345234523

??? bol=True

??? # locals()? 代表把當(dāng)前函數(shù)中的所有局部變量,傳到模板中

??? class Person():

??????? def __init__(self,name):

??????????? self.name=name

??????? def test(self):

??????????? return self.name

??????? def __str__(self):

??????????? return self.name

??????? @classmethod

??????? def test2(cls):

??????????? return '123'

??? lqz=Person('lqz')

??? # 在模板上寫(xiě)變量的時(shí)候,相當(dāng)于執(zhí)行了print方法,如果是方法,不能加括號(hào),它會(huì)自動(dòng)加括號(hào),但是不支持傳參數(shù)

??? print(lqz)

??? print(lqz.test())

??? return render(request,'index.html',locals())

???????? 3 模版之過(guò)濾器

?????????????????? 變量之過(guò)濾器(是個(gè)函數(shù))

?????????????????? -語(yǔ)法:(后面只能傳一個(gè)參數(shù))

??????????????????????????? {{變量名|過(guò)濾器的名字:參數(shù)}}

?????????????????? -內(nèi)置過(guò)濾器:

??????????????????????? 數(shù)字+3:

??????????????????????????? <p>{{ age|add:3 }}</p>

??????????????????????????? name的長(zhǎng)度:

??????????????????????????? <p>{{ name|length }}</p>

??????????????????????????? bol有值取值沒(méi)有默認(rèn)為123

??????????????????????????? <p>{{ bol|default:'123' }}</p>

??????????????????????????? <p>{{ ll2|default:'我是空的' }}</p>

??????????????????????????? 對(duì)文件大小的轉(zhuǎn)換格式

???????? ?????????????????? <p>{{ file_size|filesizeformat }}</p>

??????????????????????????? 時(shí)間:

??????????????????????????? <p>{{ ctime }}</p>

??????????????????????????? <p>{{ ctime|date:'Y年m月' }}</p>

??????????????????????????? 從索引2到4切出來(lái)

??????????????????????????? <p>{{ name|slice:'2:4' }}</p>

??????????????????????????? 從開(kāi)頭切出6個(gè)字符后面三個(gè)是...

??????????????????????????? <p>{{ name|truncatechars:6 }}</p>

??????????????????????????? 切出2個(gè)詞語(yǔ)后跟...

??????????????????????????? <p>{{ name2|truncatewords:2}}</p>

??????????????????

?????????????????? '??????? 可以點(diǎn)擊跳轉(zhuǎn)

??????????????????????????? <p>{{ href|safe }}</p>

??????????????????????????? views中的代碼: href='<a href="http://www.baidu.com">打開(kāi)百度</a>

???????????????????????????????????????????????????????

???????? 4 模版之標(biāo)簽

?????????????????? -語(yǔ)法:{% %}

?????????????????? -foo是一個(gè)可迭代對(duì)象

?????????????????? ??? {% for a in foo %}

?

??????????????????????????? {% endfor %}

?????????????????? -forloop:counter,couter0,revcounter,revcouter0,first,last,parentloop:父循環(huán)的forloop對(duì)象

?????????????????? -for--empty的使用

??????????????????????????? {% for foo in ll2 %}

???????????????????????????????????? {{ foo }}

??????????????????????????? {% empty %}

???????????????????????????????????? 沒(méi)有值啊

??????????????????????????? {% endfor %}

?????????????????? -if判斷

??????????????????????????? {% if ll2 %}

???????????????????????????????????? ll2 有值

??????????????????????????? {% elif ll %}

???????????????????????????????????? ll有值

??????????????????????????? {% else %}

???????????????????????????????????? ll2 沒(méi)有值

??????????????????????????? {% endif %}

?????????????????? -with重命名

??????????????????????????? {% with dic.hobby.1 as a %}

??????????????????????????? {#{% with a=dic.hobby.1 %}#}

???????????????????????????????????? {{ a }}

???????????????????????????????????? <p>aaaa</p>

???????????????????????????????????? {{ a }}

?

??????????????????????????? {% endwith %}

???????????????????????????

???????? 5 自定義過(guò)濾器

?????????????????? 1 確認(rèn)app是否在settings中注冊(cè)

?????????????????? 2 在app下創(chuàng)建templatetags的模塊(名字固定)

?????????????????? 3 在模塊下創(chuàng)建py文件(名字隨意)--->在模板中{% load py文件名字%}

?????????????????? 4 在py文件中寫(xiě)過(guò)濾器

??????????????????????????? from django.template import Library

??????????????????????????? register = Library()

??????????????????????????? #指定了name之后,模板上使用的時(shí)候,直接用name調(diào)用,如果沒(méi)指定name,就用函數(shù)的名字

??????????????????????????? # 過(guò)濾器最多有兩個(gè)參數(shù)

??????????????????????????? @register.filter(name='myadd')

??????????????????????????? def my_add(a,b):

???????????????????????????????????? print(a+b)

???????????????????????????????????? return a+b

?????????????????? 5 模板中使用

??????????????????????????? -1 {% load py文件名字%}

???????? ?????????????????? -2 {{ 變量|myadd:1}}

???????? 6 自定義標(biāo)簽

?????????????????? 1 確認(rèn)app是否在settings中注冊(cè)

?????????????????? 2 在app下創(chuàng)建templatetags的模塊(名字固定)

?????????????????? 3 在模塊下創(chuàng)建py文件(名字隨意)--->在模板中{% load py文件名字%}

?????????????????? 4 在py文件中寫(xiě)過(guò)濾器

??????????????????????????? from django.template import Library

??????????????????????????? register = Library()

??????????????????????????? #指定了name之后,模板上使用的時(shí)候,直接用name調(diào)用,如果沒(méi)指定name,就用函數(shù)的名字

??????????????????????????? # 過(guò)濾器最多有兩個(gè)參數(shù)

??????????????????????????? @register.simple_tag(name='mytag')

??????????????????????????? def my_tag(a,b,c):

???????????????????????????????????? return a+b+c

?????????????????? 5 模板中使用

??????????????????????????? -1 {% load py文件名字%}

??????????????????????????? -2 {% mytag 參數(shù)1 參數(shù)2 參數(shù)3%}

???????? 7 標(biāo)簽和過(guò)濾器的區(qū)別:

?????????????????? 1 標(biāo)簽可以傳多個(gè)參數(shù),過(guò)濾器最多只能傳2個(gè)

?????????????????? 2 使用過(guò)濾器{{ }}?? 標(biāo)簽使用:{% %}

?????????????????? 3 ****重點(diǎn):過(guò)濾器可以放在if判斷后,標(biāo)簽不能放在if判斷后

??????????????????

?

轉(zhuǎn)載于:https://www.cnblogs.com/zhouhai007/p/10252603.html

總結(jié)

以上是生活随笔為你收集整理的过滤器和标签的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。