1. 程式人生 > >Django(自定義過濾器和自定義標簽)

Django(自定義過濾器和自定義標簽)

bsp replace 取數據 獲取 key-value cut ext 兩個 rom

  • 模版是一個用django模版語言標記過的python字符串。模版可以包含模版標簽和變量。
  • 模版標簽是在一個模版裏起作用的標記。比如,一個模版標簽可以產生控制結構的內容(if或者for),可以獲取數據庫內容或者訪問其它模版標簽。
  • 一個標簽塊被{%%}包圍
  • 變量標簽被{{}}包圍
  • context是一個傳遞給模版的key-value對。
  • 模版渲染是通過從context獲取值來替換模版中變量並執行所有的模版標簽。

創建自定義標簽目錄

首先在app底下創建一個templatetags目錄,添加一下兩個.py文件

__init__.py 
extra_tags.py
目錄結構如下

技術分享圖片

在 setting 中作為app進行註冊
INSTALLED_APPS = [
    django.contrib.admin,
    django.contrib.auth,
    django.contrib.contenttypes,
    django.contrib.sessions,
    django.contrib.messages,
    django.contrib.staticfiles,
    blog,
    mysites.templatetags,#作為app註冊

]

在extratags.py 中添加自定義過濾器

from django import template

register 
= template.Library() @register.filter(name=cut) # 過濾器在模板中使用時的name def myCut(value, arg): # 把傳遞過來的參數arg替換為轉換後 return value.replace(arg, 轉換後)

編輯試圖函數,把value傳遞給模板文件

def  index(request):
    return render(request, index.html,{value:Hello Small Nine})

添加urls 路由控制

urlpatterns = [
    path(
admin/, admin.site.urls), path(login/,views.login), path(index/,views.index), ]

最終啟動結果顯示

技術分享圖片

技術分享圖片

Django(自定義過濾器和自定義標簽)