Django框架基礎(chǔ)模板標(biāo)簽與filter使用方法詳解
本文實(shí)例講述了Django框架基礎(chǔ)模板標(biāo)簽與filter使用方法。分享給大家供大家參考,具體如下:
一、基本的模板語言
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 }}
<!-- 過濾 flite 的使用 -->
{{ dict.age | 過濾條件 }}
</div>
2、邏輯語法
{% %}
2.1、循環(huán)與判斷
{% for ... in ... %}
{% endfor %}
{% if %}
{% else %}
{% endif %}
{% url '網(wǎng)頁路徑' %} 指定路徑
<form>
{% csrf_token %} 去除跨域csrf驗(yàn)證
</form>
{% load 標(biāo)簽庫 %} 加載任意標(biāo)簽庫
3、模板中的邏輯操作:
3.1、 ==, !=, >=, <=, >, < 這些比較都可以在模板中使用(注意:比較符號前后必須有至少一個(gè)空格?。?/p>
{% if var >= 90 %}
成績優(yōu)秀,學(xué)得不錯(cuò)
{% 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格式化一個(gè)可以識別的大?。ɡ樱?.5k,5M等)
3.4、{{ value|slice:" 2:1" }} 對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 }} 對value進(jìn)行截取,只顯示30個(gè)字符,用“...”代替多余的部分
3.8、{{ value|add:10 }} 做加法運(yùn)算
3.9、{{ value|capfirst }} 首字母大寫
3.9、{{ value|cut:'a' }} 從字符串中移除指定的字符
2、自定義filter
2.1、在APP項(xiàng)目中新建 templatetags 模塊 ,在.py文件中編寫自定義模塊
# 自定義filter的基本語法
form Django import template # 引用Django中的模塊
register = template.Library() # 實(shí)例化一個(gè)模板對象
# 將自定義的 filter 注冊到程序中
@register.filter
'''
@register.filter(name = 'fleter_name') 這個(gè)裝飾器把自定義的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)這個(gè)錯(cuò)誤需要手動(dòng)重啟python程序

希望本文所述對大家基于Django框架的Python程序設(shè)計(jì)有所幫助。
- 淺談Django自定義模板標(biāo)簽template_tags的用處
- 詳解Django項(xiàng)目中模板標(biāo)簽及模板的繼承與引用(網(wǎng)站中快速布置廣告)
- django框架自定義模板標(biāo)簽(template tag)操作示例
- Django框架模板語言實(shí)例小結(jié)【變量,標(biāo)簽,過濾器,繼承,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的效率對比詳解
- 使用django的objects.filter()方法匹配多個(gè)關(guān)鍵字的方法
相關(guān)文章
Python中使用pprint函數(shù)進(jìn)行格式化輸出的教程
這篇文章主要介紹了Python中使用pprint函數(shù)進(jìn)行格式化輸出的教程,包括能夠控制輸出寬度等非常有用的特性,需要的朋友可以參考下2015-04-04
PyTorch搭建ANN實(shí)現(xiàn)時(shí)間序列風(fēng)速預(yù)測
這篇文章主要為大家介紹了PyTorch搭建ANN實(shí)現(xiàn)時(shí)間序列風(fēng)速預(yù)測,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
詳解Python如何制作自動(dòng)發(fā)送微信的程序
這篇文章主要介紹了如何利用Python中的apscheduler和pyautogui模塊,制作一個(gè)自動(dòng)發(fā)送微信的程序。感興趣的小伙伴可以跟隨小編一起動(dòng)手試一試2022-01-01
Django項(xiàng)目打包完整步驟以及可能出現(xiàn)的問題
django項(xiàng)目的結(jié)構(gòu)大體上都是類似,打包主要的功能就是把一些不需要部署的文件剔除,把需要部署的文件直接壓縮打包,下面這篇文章主要給大家介紹了關(guān)于Django項(xiàng)目打包完整步驟以及可能出現(xiàn)問題的相關(guān)資料,需要的朋友可以參考下2023-06-06
Python鍵盤輸入轉(zhuǎn)換為列表的實(shí)例
今天小編就為大家分享一篇Python鍵盤輸入轉(zhuǎn)換為列表的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06

