Django零基礎(chǔ)入門(mén)之常用過(guò)濾器詳解
引言:
前面講過(guò)了Django中使用模板變量。使用很簡(jiǎn)單,那么有沒(méi)有什么關(guān)于模板變量的騷操作呢?
答案是肯定有的,這就是本文要講的——過(guò)濾器!
1.過(guò)濾器
(1)純干貨講解:
作用: 對(duì)變量進(jìn)行過(guò)濾。在真正渲染出來(lái)之前,過(guò)濾器會(huì)根據(jù)功能處理好變量,然后得出結(jié)果后再替換掉原來(lái)的變量展示出來(lái)。
- 語(yǔ)法:{{ fruits|lower }}
- 管道符號(hào)進(jìn)行鏈?zhǔn)秸{(diào)用(可以理解為嵌套使用?。?,比如實(shí)現(xiàn)一個(gè)功能,先把所有字符變成小寫(xiě),再把第一個(gè)字符轉(zhuǎn)換成大寫(xiě)。
- 語(yǔ)法:{{fruits|lower|capfirst}}
- 使用參數(shù):過(guò)濾器可以使用參數(shù),在過(guò)濾器名稱后面使用冒號(hào),加上雙引號(hào),雙引號(hào)里面再加上參數(shù),比如要把一個(gè)字符串中所有的空格去掉,則可以使用cut過(guò)濾器——語(yǔ)法: {{fruits|cut:" "}}
- 注意:使用參數(shù)的時(shí)候,冒號(hào)和參數(shù)之間不能有任何空格,一定要緊挨著!
(2)Django中實(shí)戰(zhàn)使用——常用的過(guò)濾器:
①項(xiàng)目目錄下的views.py文件:
from django.shortcuts import render from django.http import HttpResponse # Create your views here. from datetime import datetime def index(request): test="THIS IS A LIST!" list=["A","B","C","D","E"] data={ 'test':test, 'xx':'', 'num1':1, 'num2':2, 'list':list, 'now':datetime.now(), 'html':'<h1>hello django!!!</h1>', 'float':3.1415926 } return render(request, "index.html", data)
②項(xiàng)目目錄下templates模板文件夾下的模板文件index.html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>測(cè)試!</title> </head> <body> {#沒(méi)做處理的變量:#} {{ test }}<br> {#設(shè)置了默認(rèn)值的變量 在這個(gè)值被django認(rèn)為是False的時(shí)候會(huì)使用此默認(rèn)值。比如:空字符串,None。#} {{ xx|default:'xxxxx' }}<br> {#設(shè)置了只有為None時(shí)才使用默認(rèn)值的變量#} {{ xx|default_if_none:'aaaaa'}}<br> {#變?yōu)樾?xiě)后的變量#} {{ test|lower }}<br> {#先變?yōu)樾?xiě)再將首字母大寫(xiě)后的變量#} {{ test|lower|capfirst }}<br> {#兩個(gè)數(shù)字變量相加 add:字符串相加,數(shù)字相加,列表相加,如果失敗,將會(huì)返回一個(gè)空字符串#} {{ num1|add:num2 }}<br> {#兩個(gè)字符串變量相加#} {{ test|add:xx }}<br> {#列表變量的第一個(gè)元素#} {{ list|first }}<br> {#列表變量的最后一個(gè)元素#} {{ list|last }}<br> {#默認(rèn)的data日期時(shí)間格式#} {{ now|date }}<br> {#默認(rèn)的time時(shí)間格式#} {{ now|time }}<br> {#這是data過(guò)濾器的年月日24小時(shí)制時(shí)間格式#} {{ now|date:'Y/m/d/H:i:s' }}<br> {#這是time過(guò)濾器的時(shí)分秒12小時(shí)制時(shí)間格式#} {{ now|time:'h:i:s' }}<br> {#這是字符串的join方法 跟python中join一樣的用法#} {{ list|join:'oooo' }}<br> {#這是字符串的長(zhǎng)度方法#} {{ test|length }}<br> {#這是列表的長(zhǎng)度是否為4#} {{ list|length_is:4 }}<br> {#下面這倆有xxx.html類型的,針對(duì)html,截?cái)鄻?biāo)簽中的字符,而不會(huì)截?cái)鄻?biāo)簽#} {#這是字符串只顯示4個(gè)字符,其余省略(但是占3位)#} {{ test|truncatechars:7 }}<br> {#這是字符串只顯示2個(gè)單詞,其余省略(不占位)#} {{ test|truncatewords:2 }}<br> {#這是字符串的切片#} {{ test|slice:'1:4' }}<br> {#這是列表的切片#} {{ list|slice:'2' }}<br> {#這是含html標(biāo)簽的字符串#} {{ html }}<br> {#這是去掉字符串中的html標(biāo)簽#} {{ html|striptags }}<br> {#這是關(guān)掉自動(dòng)轉(zhuǎn)義,使字符串中html標(biāo)簽生效#} {{ html|safe }}<br> {#這是沒(méi)做處理的小數(shù)#} {{ float }}<br> {#這是保留了一位小數(shù)#} {{ float|floatformat }}<br> {#這是保留了兩位小數(shù)#} {{ float|floatformat:'2' }} </body> </html>
③效果展示:
date和time過(guò)濾器格式:
拓展——簡(jiǎn)介自動(dòng)轉(zhuǎn)義:
什么是自動(dòng)轉(zhuǎn)義?
自動(dòng)轉(zhuǎn)義是將變量的一些特殊字符,比如左箭頭(<)、右箭頭(>)轉(zhuǎn)義成html代碼,這樣做的目的是為了處理一些不安全的變量。
<:轉(zhuǎn)義成< >:轉(zhuǎn)義成> ‘:轉(zhuǎn)義成' “:轉(zhuǎn)義成" &:轉(zhuǎn)義成&
到此這篇關(guān)于Django零基礎(chǔ)入門(mén)之常用過(guò)濾器詳解的文章就介紹到這了,更多相關(guān)Django過(guò)濾器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用描述器實(shí)現(xiàn)ORM模型的方法詳解
這篇文章主要為大家詳細(xì)介紹了Python描述器實(shí)現(xiàn)ORM模型,使用數(shù)據(jù)庫(kù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02eclipse創(chuàng)建python項(xiàng)目步驟詳解
在本篇內(nèi)容里小編給大家分享了關(guān)于eclipse創(chuàng)建python項(xiàng)目的具體步驟和方法,需要的朋友們跟著學(xué)習(xí)下。2019-05-05Python插件virtualenv搭建虛擬環(huán)境
這篇文章主要為大家詳細(xì)介紹了Python插件virtualenv搭建虛擬環(huán)境,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11