Django框架基礎(chǔ)模板標(biāo)簽與filter使用方法詳解
本文實(shí)例講述了Django框架基礎(chǔ)模板標(biāo)簽與filter使用方法。分享給大家供大家參考,具體如下:
一、基本的模板語(yǔ)言
1、變量
{{ }}
1.1、進(jìn)入Django shell 環(huán)境
python manage.py shell
1.2、Context、Template 模塊的基本使用
from django.template import Context,Template t = Template('My name id {{ name }}') c = Context({'name':'Stephane'}) t.render(c)
1.3、views.py 文件
def index(request): list = ['小明','小花','小包'] dict = {'age':14,'user':'小高'} return render(request,'index.html',{'list':list,'dict':dict})
1.4、index.html 文件
<div> <!-- 獲得列表第一個(gè)名字:“小明” --> {{ list.0 }} <!-- 獲得字典中的 age 項(xiàng) --> {{ dict.age }} <!-- 過(guò)濾 flite 的使用 --> {{ dict.age | 過(guò)濾條件 }} </div>
2、邏輯語(yǔ)法
{% %}
2.1、循環(huán)與判斷
{% for ... in ... %}
{% endfor %}
{% if %}
{% else %}
{% endif %}
{% url '網(wǎng)頁(yè)路徑' %} 指定路徑
<form>
{% csrf_token %} 去除跨域csrf驗(yàn)證
</form>
{% load 標(biāo)簽庫(kù) %} 加載任意標(biāo)簽庫(kù)
3、模板中的邏輯操作:
3.1、 ==, !=, >=, <=, >, < 這些比較都可以在模板中使用(注意:比較符號(hào)前后必須有至少一個(gè)空格?。?/p>
{% if var >= 90 %} 成績(jī)優(yōu)秀,學(xué)得不錯(cuò) {% elif var >= 80 %} 成績(jī)良好 {% elif var >= 70 %} 成績(jī)一般 {% elif var >= 60 %} 需要努力 {% else %} 不及格啊,大哥! {% endif %}
3.2、and, or, not, in, not in , is , is not 也可以在模板中使用
{% if num <= 100 and num >= 0 %} num在0到100之間 {% else %} 數(shù)值不在范圍之內(nèi)! {% endif %}
4、注釋
{# value #}
二、Django的模板方法
1、filters 內(nèi)置語(yǔ)法
基本語(yǔ)法:{{ value|filter_name:參數(shù) }} value:變量名 ; filter_name:Django內(nèi)置或者自定義filter方法; 參數(shù):處理的值
3.1、{{ value|default:參數(shù) }} 如果value沒(méi)有傳值,替換default設(shè)置的參數(shù)。
3.2、{{ value|default_if_none:參數(shù) }} 如果value為none,替換default設(shè)置的參數(shù)。
3.2、{{ value|length }} 顯示value的長(zhǎng)度
3.3、{{ value|filesizeformat }} 將value格式化一個(gè)可以識(shí)別的大小(例子:1.5k,5M等)
3.4、{{ value|slice:" 2:1" }} 對(duì)value進(jìn)行切片(支持負(fù)數(shù))
3.5、{{ value|date:"Y:m:d H:i:s"}} 格式話時(shí)間
3.6、{{ value|safe }} 直接解析為可執(zhí)行的html代碼
3.7、{{ value|truncatechars:30 }} 對(duì)value進(jìn)行截取,只顯示30個(gè)字符,用“...”代替多余的部分
3.8、{{ value|add:10 }} 做加法運(yùn)算
3.9、{{ value|capfirst }} 首字母大寫(xiě)
3.9、{{ value|cut:'a' }} 從字符串中移除指定的字符
2、自定義filter
2.1、在APP項(xiàng)目中新建 templatetags 模塊 ,在.py文件中編寫(xiě)自定義模塊
# 自定義filter的基本語(yǔ)法 form Django import template # 引用Django中的模塊 register = template.Library() # 實(shí)例化一個(gè)模板對(duì)象 # 將自定義的 filter 注冊(cè)到程序中 @register.filter ''' @register.filter(name = 'fleter_name') 這個(gè)裝飾器把自定義的filter注冊(cè)到程序中, 讓其可以使用自定義的 filter 方法; reg是 ‘|' 前面的變量 reg2是方法后面的參數(shù)。 ''' @register.filter(name = 'add') def add(reg): return '{}'.format(reg) @register.filter(name = 'add_str') def add_str(reg,reg2): return '{} {}'.format(reg,reg2)
2.2、html文件的使用方法
<!-- 導(dǎo)入自定義的filter方法 --> {% load filter %} {{ value|add }} {{ value|add_str:'123'}} {% if num|fliter:參數(shù) %} 內(nèi)容 {% endif %}
出現(xiàn)這個(gè)錯(cuò)誤需要手動(dòng)重啟python程序
希望本文所述對(duì)大家基于Django框架的Python程序設(shè)計(jì)有所幫助。
- 淺談Django自定義模板標(biāo)簽template_tags的用處
- 詳解Django項(xiàng)目中模板標(biāo)簽及模板的繼承與引用(網(wǎng)站中快速布置廣告)
- django框架自定義模板標(biāo)簽(template tag)操作示例
- Django框架模板語(yǔ)言實(shí)例小結(jié)【變量,標(biāo)簽,過(guò)濾器,繼承,html轉(zhuǎn)義】
- Django模板繼承 extend標(biāo)簽實(shí)例代碼詳解
- Django objects.all()、objects.get()與objects.filter()之間的區(qū)別介紹
- 淺談django model的get和filter方法的區(qū)別(必看篇)
- Django中利用filter與simple_tag為前端自定義函數(shù)的實(shí)現(xiàn)方法
- 基于Django filter中用contains和icontains的區(qū)別(詳解)
- 關(guān)于Django ForeignKey 反向查詢中filter和_set的效率對(duì)比詳解
- 使用django的objects.filter()方法匹配多個(gè)關(guān)鍵字的方法
相關(guān)文章
Pycharm 使用 Pipenv 新建的虛擬環(huán)境(圖文詳解)
pipenv 是 Pipfile 主要倡導(dǎo)者、requests 作者 Kenneth Reitz 寫(xiě)的一個(gè)命令行工具,主要包含了Pipfile、pip、click、requests和virtualenv。這篇文章主要介紹了Pycharm 使用 Pipenv 新建的虛擬環(huán)境的問(wèn)題,需要的朋友可以參考下2020-04-04python自動(dòng)化工具之pywinauto實(shí)例詳解
這篇文章主要為大家詳細(xì)介紹了python自動(dòng)化工具之pywinauto實(shí)例,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08python pandas實(shí)現(xiàn)excel轉(zhuǎn)為html格式的方法
今天小編就為大家分享一篇python pandas實(shí)現(xiàn)excel轉(zhuǎn)為html格式的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10Python基本數(shù)據(jù)類(lèi)型之字符串str
字符串是編程中最重要的數(shù)據(jù)類(lèi)型,也是最常見(jiàn)的,今天小編抽空給大家講解下Python基本數(shù)據(jù)類(lèi)型之字符串str的實(shí)例代碼,感興趣的朋友跟隨小編一起看看吧2021-07-07Python字典數(shù)據(jù)對(duì)象拆分的簡(jiǎn)單實(shí)現(xiàn)方法
這篇文章主要介紹了Python字典數(shù)據(jù)對(duì)象拆分的簡(jiǎn)單實(shí)現(xiàn)方法,涉及Python針對(duì)字典數(shù)據(jù)的相關(guān)遍歷、拆分等操作技巧,需要的朋友可以參考下2017-12-12Python一個(gè)簡(jiǎn)單的通信程序(客戶端 服務(wù)器)
今天小編就為大家分享一篇關(guān)于Python一個(gè)簡(jiǎn)單的通信程序(客戶端 服務(wù)器),小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03python eval 轉(zhuǎn)換k m到乘法計(jì)算的操作
這篇文章主要介紹了python eval 轉(zhuǎn)換k m到乘法計(jì)算的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05