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