day63-Django基礎-部分常用的模板語言(補充)

  • 2019 年 10 月 7 日
  • 筆記

1.default,變數為空或者不存在的時候,替換默認值

{{ value|default:"暫無資訊"}}  當我的 value 值不存在的時候,就會用 "暫無資訊" 來替換

2.length,顯示變數的長度

{{ value|length }}    返回value的長度,如 value=['a', 'b', 'c', 'd']的話,就顯示4

3.data,格式化當前時間

{{ value|date:"Y-m-d H:i:s"}}    按照當前訂製的格式,顯示時間

4.cut去值,類似循環做替換

{{ value|cut:' ' }}    如果 value 的值是 "from selenium import webdriver",則會變成"fromseleniumimportwebdriver",去了空格

5.timesince,一般用於 "多久之前" 的頁面顯示

{{ blog_date|timesince:comment_date }}    比如:我寫了這個部落格的時候,時間 blog_data 是13:00  然後 comment_data 是14:00,  那麼頁面上將顯示 "1小時",  一般 comment_data 使用當前時間,再加一點文字修飾,這樣就實現了"XX時候之前" 

6.timeuntil,一般用於,"距離某事件還需要多久" 的頁面展示

{{ conference_date|timeuntil:from_date }}    比如:我要設定一個頁面的顯示,距離月底還剩多久  那麼:conference_data 這個變數就用於存儲 當前時間,比如9.25號  然後:form_data 裡面就放一個固定的時間,如果設定 9.30 號,  那麼:頁面就顯示 5 天  做一點文字裝飾,就實現了,"距離某事件還要 XX 時間"

7.自定義filter★★★★★,實現自定義的模板語言的過濾方法

具體步驟:

1.在 APP 目錄下面新建一個名為 templatetags 的 python 包

2.在新建的包裡面新建一個 python文件,名字自定義

3.在新建的python文件中,按照固定格式新建一個自定義的 filter

from django import template    """  固定格式  就這麼寫,連變數的名字都不要換  """  register = template.Library()      @register.filter()  def add_something(value):      return value + 'something'

4.寫完之後,重新啟動Django項目

5.在 HTML 頁面中,{% load python文件名 %}

6.{{ value|自定義filter名字 }}