91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django如何自定義模板標簽

發布時間:2021-07-19 10:12:12 來源:億速云 閱讀:109 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“django如何自定義模板標簽”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“django如何自定義模板標簽”這篇文章吧。

代碼布局

自定義模板標簽必須位于django的某個應用中

該應用中新建templatetags目錄,和models.py,views.py同一級別

結構如下:

polls/
  __init__.py
  models.py
  templatetags/
    __init__.py
    poll_extras.py
  views.py

模板中調用標簽:

{% load poll_extras %}

為了讓load標簽工作,該標簽所在應用必須在INSTALLED_APPS中

templatetags里有多少個模塊沒有限制,因為{% load %}會載入給定模塊名的標簽過濾器,而不是應用的名稱

為了成為一個可用的標簽庫,必須注冊,放在模塊頂部

from django import template
register=template.Library()

自定義標簽過濾器

自定義過濾器就是一個帶有一個或兩個參數的Python 函數:

  • (輸入的)變量的值 —— 不一定是字符串形式。

  • 參數的值 —— 可以有一個初始值,或者完全不要這個參數。

例如,在{{ var|foo:"bar" }}中,foo過濾器應當傳入變量var和參數 "bar"。

def cut(value, arg):
  """Removes all values of arg from the given string"""
  return value.replace(arg, '')

下面是這個過濾器應該如何使用:

{{ somevariable|cut:"0" }}

大多數過濾器沒有參數。在這種情況下,你的函數不帶這個參數即可。示例︰

def lower(value): # Only one argument.
  """Converts a string into all lowercase"""
  return value.lower()

注冊自定義過濾器

方法1:

register.filter('cut', cut)
register.filter('lower', lower)

Library.filter()方法需要兩個參數:

過濾器的名稱(一個字符串對象)

編譯的函數 – 一個Python函數(不要把函數名寫成字符串)

方法2:register.filter()用作裝飾器

@register.filter(name='cut')
def cut(value, arg):
  return value.replace(arg, '')

@register.filter
def lower(value):
  return value.lower()

下邊是實例:

django如何自定義模板標簽

my.pyfrom django import template
register=template.Library()
@register.filter
def myadd(param):
  res=param+"************************"
  return res
@register.filter
def mycul(param,num):
  res=param*num
  return res
views.pydef tags(request):
  print("hello")
  return render(request,'mytags.html')
tags.html<body>
  {% load my %}
  {{ 'tags'|myadd }}

  {{ 'tags'|mycul:5 }}
</body>

結果:

tags************************ tagstagstagstagstags

以上是“django如何自定義模板標簽”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

甘泉县| 德庆县| 南和县| 兴仁县| 西盟| 阿荣旗| 青阳县| 黄浦区| 翁源县| 鄱阳县| 克什克腾旗| 秭归县| 乌审旗| 咸阳市| 阜阳市| 西青区| 景谷| 广西| 东宁县| 冷水江市| 克山县| 垫江县| 竹溪县| 旬阳县| 出国| 太湖县| 仙桃市| 镇安县| 盐津县| 靖远县| 七台河市| 寻乌县| 合肥市| 名山县| 丰都县| 衡东县| 汤原县| 二连浩特市| 崇左市| 翁牛特旗| 共和县|