<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        詳解Django中用filter與simple_tag為前端定義函數(shù)

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 14:24:03
        文檔

        詳解Django中用filter與simple_tag為前端定義函數(shù)

        詳解Django中用filter與simple_tag為前端定義函數(shù):這篇文章主要給大家介紹了Django中利用filter與simple_tag為前端自定義函數(shù)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。前言Django的模板引擎提供了一般性的功能函數(shù),通過前端可以實現(xiàn)多數(shù)的
        推薦度:
        導(dǎo)讀詳解Django中用filter與simple_tag為前端定義函數(shù):這篇文章主要給大家介紹了Django中利用filter與simple_tag為前端自定義函數(shù)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。前言Django的模板引擎提供了一般性的功能函數(shù),通過前端可以實現(xiàn)多數(shù)的

        這篇文章主要給大家介紹了Django中利用filter與simple_tag為前端自定義函數(shù)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。

        前言

        Django的模板引擎提供了一般性的功能函數(shù),通過前端可以實現(xiàn)多數(shù)的代碼邏輯功能,這里稱之為一般性,是因為它僅支持大多數(shù)常見情況下的函數(shù)功能,例如if判斷,ifequal對比返回值等,但是稍微復(fù)雜一些的函數(shù)功能并不支持,例如通過模板來判斷一個返回值是否是合法的數(shù)字類型,此時如果又不希望通過后臺視圖代碼來實現(xiàn)的話,我們就可以自定義一些前端函數(shù)功能。

        Django為我們提供了兩種方式,分別是filter和simple_tag,下面對比兩種方式,分別實現(xiàn)判斷返回值的功能函數(shù)。

        準(zhǔn)備工作

        1、應(yīng)用程序必須要注冊到settings配置文件中

        2、在應(yīng)用目錄下創(chuàng)建templatetags目錄

        3、在templatetags創(chuàng)建模塊文件,并導(dǎo)入Django內(nèi)部方法

        filter

        在templatetags目錄下創(chuàng)建python模塊,這里命名為app01_func.py,內(nèi)容如下:

        from django import template
        from django.template.defaultfilters import stringfilter
        
        register = template.Library()
        
        
        @register.filter
        def value_verification(value): # value為前端傳遞的參數(shù)
         try:
         int(value)
         return True
         except:
         return False

        定制完后臺功能后,就可以在模板文件中調(diào)用函數(shù)功能,首選需要在模板文件頭中引入后臺python模塊。

        {% load app01_func %}

        例如我們需要判斷后臺返回值load是否為一個有效數(shù)字時,可以做如下調(diào)用:

        {% if load|value_verification %}
         {{ load }} is a valid int number.
        {% else %}
         {{ load }} is letter.
        {% endif %}

        simple_tag

        simple_tag的代碼方式與filter一樣,不同的是在裝飾器部分需要調(diào)用simple_tag方法

        from django import template
        from django.template.defaultfilters import stringfilter
        
        register = template.Library()
        
        
        @register.simple # 這里修改為simple_tag
        def value_verification(value): # value為前端傳遞的參數(shù)
         try:
         int(value)
         return True
         except:
         return False

        同時前端的調(diào)用方式也需要改為

        {% value_verification load %}

        傳遞參數(shù)

        - filter 最多支持兩個參數(shù)傳遞

        - simple 支持多個參數(shù)傳遞

        filter中可以通過下面的方式實現(xiàn)參數(shù)傳遞

        {{ load | value_verification:"100"}}

        這里即向后端傳遞了兩個參數(shù),一個是load,另一個是100,后端也要為函數(shù)指定好形參:

        def value_verification(value, custom): # 配置好形參
         ...

        simple_tag中可以指定多個形參,前臺的調(diào)用方式如下:

        {% value_verification load 100 200 ... %}

        這里filter中最多只能接受兩個參數(shù),但此時參數(shù)又多,又不想使用simple_tag的情況下,可以將多個參數(shù)用特定字符拼接成一個字符串傳遞給后端,后端通過split方式同樣能獲取多個參數(shù)。

        對比總結(jié)

        通過simple_tag和filter可以完成模板引擎無法完成的某些事情,filter將我們指定的函數(shù)變成了返回值可執(zhí)行的方法,simple_tag將函數(shù)功能變?yōu)闃?biāo)簽功能,例如if、ifequal等,同樣調(diào)用方式也不同,對比如下:

        {{ load | value_verification }} # filter
        {% value_verification load %} # simple_tag

        因為調(diào)用方式的不同,如果返回值需要做為if或ifequal判斷依據(jù)的話,這里只能使用filter方法了,stringfilter方法可以實現(xiàn)將接收到的所有參數(shù)變?yōu)樽址愋停瑀egister裝飾器一樣引用到函數(shù)方法上即可,這里注意要放在register下面,否則無法生效。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        詳解Django中用filter與simple_tag為前端定義函數(shù)

        詳解Django中用filter與simple_tag為前端定義函數(shù):這篇文章主要給大家介紹了Django中利用filter與simple_tag為前端自定義函數(shù)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧。前言Django的模板引擎提供了一般性的功能函數(shù),通過前端可以實現(xiàn)多數(shù)的
        推薦度:
        標(biāo)簽: 中用 詳解 函數(shù)
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲人成网亚洲欧洲无码| 久久久久久A亚洲欧洲AV冫| 亚洲精品高清视频| 免费在线中文日本| 亚洲第一页在线播放| 亚洲乱码国产乱码精品精| 亚洲欧洲无卡二区视頻| 免费观看的毛片大全| 亚洲国产综合91精品麻豆| 四虎成人精品永久免费AV| 亚洲中文字幕无码久久综合网| 久久免费观看视频| 国产成人亚洲精品青草天美| 亚洲黄片手机免费观看| 大学生一级毛片免费看| 亚洲在成人网在线看| 国产va精品免费观看| 久久综合亚洲色hezyo| 波多野结衣中文一区二区免费 | 国产日韩AV免费无码一区二区三区| 亚洲国产精品毛片av不卡在线 | 91在线免费视频| 图图资源网亚洲综合网站| 国产成人免费高清激情明星| 2019亚洲午夜无码天堂| 又黄又爽无遮挡免费视频| a视频在线观看免费| 亚洲va成无码人在线观看| 国产在线观看www鲁啊鲁免费| 国产免费人成视频在线播放播 | 中文字幕免费视频精品一| 亚洲a在线视频视频| 德国女人一级毛片免费| 无码人妻一区二区三区免费视频| 在线a亚洲v天堂网2019无码| jjizz全部免费看片| 九九九精品视频免费| 亚洲视频一区网站| 亚洲毛片av日韩av无码| 在线观看的免费网站无遮挡| 色婷婷六月亚洲综合香蕉|