django-5-自定义模板过滤器及标签
生活随笔
收集整理的這篇文章主要介紹了
django-5-自定义模板过滤器及标签
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<<<代碼布局(自定義的代碼放哪里)>>>
?(1)某個app特有的
?1.一般放app目錄下 固定名為templatetags 的python文件夾里鴨,如果是別的名稱,django是找不到的哦!
? 2.再在文件夾里面寫模塊
?(2)創建新的app,在里面加模塊(**注意要注冊app鴨!!!**) <<<自定義模板過濾器>>>
?首先創建模塊,模塊名固定為 customer_filters.py,如果是別的名字,運行會報錯哦!!
?(1)模板過濾器(其實就是函數啦!)
? 1.有一個或兩個參數
?? 第一個參數是 模板變量
?? 第二個參數是普通參數,也可以不要 ?(2)注冊
? 1.通過django.template.Library 它的實例的filter方法
? filter有兩個參數
? ? name: 過濾器的名稱,是一個字符串(如果不寫name,函數名就是默認的filter名字哦!)
?? filter_func:函數名 register = Library()
? register.filter(<function>) ? 2.通過裝飾器 from django.template import Libraryregister = Library()@register.filter() def myfilter(value): ...
? <<<自定義模板標簽>>>
?(1)簡單標簽(本質也是函數):
? django.template.Library.simple_tag() ?(2)創建:
? 1.創建python模塊,模塊名固定為customer_tags.py,如果不是這個名字,也是會報錯,真jer挑剔!!
? 2.注冊
? @filter.simple_tag(name=<function>) from django.template import Libraryregister = Library()@register.simple_tag() def tag(): ...
??**如果要拿到視圖函數里面的context,則自定義標簽函數的第一個參數是context
???其次讓simple_tag函數中的take_context=True
??** ?(3)使用:同樣也要load ?(4)inclusion標簽:
? 通過渲染另一個模板來展示數據
? 這里用inclusion_tag(‘模板的路徑’)來裝飾 **這個標簽也可以拿到context,方法和simple_tag 一樣**
?(1)某個app特有的
?1.一般放app目錄下 固定名為templatetags 的python文件夾里鴨,如果是別的名稱,django是找不到的哦!
? 2.再在文件夾里面寫模塊
?(2)創建新的app,在里面加模塊(**注意要注冊app鴨!!!**) <<<自定義模板過濾器>>>
?首先創建模塊,模塊名固定為 customer_filters.py,如果是別的名字,運行會報錯哦!!
?(1)模板過濾器(其實就是函數啦!)
? 1.有一個或兩個參數
?? 第一個參數是 模板變量
?? 第二個參數是普通參數,也可以不要 ?(2)注冊
? 1.通過django.template.Library 它的實例的filter方法
? filter有兩個參數
? ? name: 過濾器的名稱,是一個字符串(如果不寫name,函數名就是默認的filter名字哦!)
?? filter_func:函數名 register = Library()
? register.filter(<function>) ? 2.通過裝飾器 from django.template import Libraryregister = Library()@register.filter() def myfilter(value): ...
在模板中使用
? <<<自定義模板標簽>>>
?(1)簡單標簽(本質也是函數):
? django.template.Library.simple_tag() ?(2)創建:
? 1.創建python模塊,模塊名固定為customer_tags.py,如果不是這個名字,也是會報錯,真jer挑剔!!
? 2.注冊
? @filter.simple_tag(name=<function>) from django.template import Libraryregister = Library()@register.simple_tag() def tag(): ...
??**如果要拿到視圖函數里面的context,則自定義標簽函數的第一個參數是context
???其次讓simple_tag函數中的take_context=True
??** ?(3)使用:同樣也要load ?(4)inclusion標簽:
? 通過渲染另一個模板來展示數據
? 這里用inclusion_tag(‘模板的路徑’)來裝飾 **這個標簽也可以拿到context,方法和simple_tag 一樣**
轉載于:https://www.cnblogs.com/wmkpy/p/10419587.html
總結
以上是生活随笔為你收集整理的django-5-自定义模板过滤器及标签的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql数据备份恢复及主从同步
- 下一篇: 配置IIS服务器提供APP文件下载