亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

长阳| 腾冲县| 桦川县| 唐海县| 榆树市| 滕州市| 麟游县| 海口市| 韶山市| 五原县| 巴青县| 卓尼县| 聂拉木县| 宜丰县| 永昌县| 遂溪县| 承德县| 鹤山市| 长春市| 荆州市| 海南省| 沧源| 乾安县| 宣城市| 黄陵县| 无极县| 响水县| 浦北县| 崇文区| 黄冈市| 三明市| 铁岭市| 鸡泽县| 东丰县| 西和县| 茶陵县| 宁波市| 商南县| 永丰县| 延安市| 武城县|