Django(自定義過濾器和自定義標簽)
阿新 • • 發佈:2018-10-10
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(自定義過濾器和自定義標簽)