亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Django中利用filter與simple_tag為前端自定義函數(shù)的實現(xiàn)方法

 更新時間:2017年06月15日 11:52:42   作者:阿布  
這篇文章主要給大家介紹了Django中利用filter與simple_tag為前端自定義函數(shù)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。

前言

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

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

準備工作

      1、應用程序必須要注冊到settings配置文件中

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

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

filter

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

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

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

{% load app01_func %}

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

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

simple_tag

simple_tag的代碼方式與filter一樣,不同的是在裝飾器部分需要調用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

同時前端的調用方式也需要改為

{% 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中可以指定多個形參,前臺的調用方式如下:

{% value_verification load 100 200 ... %}

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

對比總結

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

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

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作能帶來一定的幫助,如有疑問大家可以留言交流,謝謝大家對腳本之家的支持。

相關文章

  • python開發(fā)簡易版在線音樂播放器

    python開發(fā)簡易版在線音樂播放器

    這篇文章主要為大家詳細介紹了python開發(fā)簡易版在線音樂播放器的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • python實現(xiàn)kMeans算法

    python實現(xiàn)kMeans算法

    這篇文章主要為大家詳細介紹了python實現(xiàn)kMeans算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Python辦公自動化之CSV文件的運用和管理

    Python辦公自動化之CSV文件的運用和管理

    Python辦公?動化是利?Python編程語?來創(chuàng)建腳本和程序,以簡化、加速和?動化?常辦公任務和?作流程的過程,本文主要來介紹一下如何利用Python進行CSV文件的運用和管理,感興趣的可以了解下
    2023-12-12
  • Python實現(xiàn)二維數(shù)組輸出為圖片

    Python實現(xiàn)二維數(shù)組輸出為圖片

    下面小編就為大家分享一篇Python實現(xiàn)二維數(shù)組輸出為圖片,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python參數(shù)解析器configparser簡介

    Python參數(shù)解析器configparser簡介

    configparser是python自帶的配置參數(shù)解析器,可以用于解析.config文件中的配置參數(shù),ini文件中由sections(節(jié)點)-key-value組成,這篇文章主要介紹了Python參數(shù)解析器configparser,需要的朋友可以參考下
    2022-12-12
  • Python?Flask-Login構建強大的用戶認證系統(tǒng)實例探究

    Python?Flask-Login構建強大的用戶認證系統(tǒng)實例探究

    這篇文章主要為大家介紹了Python?Flask-Login構建強大的用戶認證系統(tǒng)示例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Python猜解網(wǎng)站數(shù)據(jù)庫管理員密碼的腳本

    Python猜解網(wǎng)站數(shù)據(jù)庫管理員密碼的腳本

    這篇文章主要和大家分享一個Python腳本,可以實現(xiàn)猜解網(wǎng)站數(shù)據(jù)庫管理員的密碼。文中的示例代碼講解詳細,需要的小伙伴可以參考一下
    2022-02-02
  • 使用Python制作一個數(shù)據(jù)預處理小工具(多種操作一鍵完成)

    使用Python制作一個數(shù)據(jù)預處理小工具(多種操作一鍵完成)

    這篇文章主要介紹了使用Python制作一個數(shù)據(jù)預處理小工具(多種操作一鍵完成),本文通過圖文實例相結合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-02-02
  • Django通過設置CORS解決跨域問題

    Django通過設置CORS解決跨域問題

    這篇文章主要介紹了Django 通過設置CORS解決跨域問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • 詳解Python如何循環(huán)遍歷Numpy中的Array

    詳解Python如何循環(huán)遍歷Numpy中的Array

    Numpy是Python中常見的數(shù)據(jù)處理庫,是數(shù)據(jù)科學中經常使用的庫。在本文中,我們將學習如何迭代遍歷訪問矩陣中的元素,需要的可以參考一下
    2022-04-04

最新評論