真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Django模板之自定義函數(shù)-創(chuàng)新互聯(lián)

我們已經(jīng)知道了在Django的模板里面,可以使用for循環(huán),if判斷,接收后臺的數(shù)據(jù),還可以通過 extends和include來重復(fù)使用其他的模板,這一節(jié)來學(xué)習(xí)如何自定義函數(shù)。

創(chuàng)新互聯(lián):自2013年起為各行業(yè)開拓出企業(yè)自己的“網(wǎng)站建設(shè)”服務(wù),為超過千家公司企業(yè)提供了專業(yè)的成都做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)頁設(shè)計和網(wǎng)站推廣服務(wù), 按需開發(fā)網(wǎng)站由設(shè)計師親自精心設(shè)計,設(shè)計的效果完全按照客戶的要求,并適當?shù)奶岢龊侠淼慕ㄗh,擁有的視覺效果,策劃師分析客戶的同行競爭對手,根據(jù)客戶的實際情況給出合理的網(wǎng)站構(gòu)架,制作客戶同行業(yè)具有領(lǐng)先地位的。

模板里面有兩種方式來自定義函數(shù),分別是simple_tag和 filter方式。

simple_tag:

1 首先在app下創(chuàng)建一個templatetags的目錄,然后在這個目錄下面創(chuàng)建一個py文件,注意這個目錄的名字是固定的

Django 模板之自定義函數(shù)

2.  然后在這個py文件里面,導(dǎo)入模板類,實例化一個對象register,然后執(zhí)行一個裝飾器simple_tag, 裝飾器下面是自己的函數(shù)

請注意,除了自己寫的函數(shù),其余所有這些參數(shù)的名字都是固定的!

__author__ = 'Administrator'
from django import template
from django.utils.safestring import mark_safe
register = template.Library()
@register.simple_tag
def addnum(a1,a2,a3):
    return a1+a2+a3

3. 和數(shù)據(jù)庫的操作一樣,需要在settings.py里面注冊這個app

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01',
]

4. 在要使用的模板文件里面頂部導(dǎo)入我們寫的python文件, 就可以調(diào)用了。調(diào)用的時候空格距離無所謂

例如

{% load calculation %}



    
    



    

        {% addnum  2  5  6 %}     

  

Django 模板之自定義函數(shù)

第二種定義函數(shù)的方式叫做filter,這個和Django自帶的函數(shù)使用方式非常類似。

首先看幾個自帶的例子

比如我可以直接傳入一個字符串,然后通過管道符號,后面跟一個字符串的函數(shù)讓他改變大小寫或者切片

    

         {{ name }}     

    

        {{ name|upper }}     

    

        {{ name|truncatechars:"10" }}     

如果希望使用類似的格式來調(diào)用自己的函數(shù),我們可以使用filter

filter的步驟和simple_tag非常類似。 首先仍然是創(chuàng)建 templatetags目錄,然后創(chuàng)建一個py文件,然后實例化一個register對象。區(qū)別在于裝飾器不同了,這次是@register.filter

比如

__author__ = 'Administrator'
from django import template
from django.utils.safestring import mark_safe
register = template.Library()
@register.simple_tag
def addnum(a1,a2,a3):
    return a1+a2+a3
@register.filter
def mulnum(a1,a2):
    return a1*a2

接下來步驟一樣,需要在settings.py里面注冊app,然后模板文件load這個py文件,調(diào)用的時候不是{% 函數(shù)名 參數(shù)1 參數(shù)2 參數(shù)3%} 的格式 而是 {{ 參數(shù)1 | 函數(shù)名:"參數(shù)2"}}

{% load calculation %}



    
    


    

        {% addnum  2  5  6 %}     

    

         {{ name }}     

    

        {{ name|upper }}     

    

        {{ name|truncatechars:"10" }}     

    {{ 30|mulnum:30 }}

結(jié)果如下

Django 模板之自定義函數(shù)

那么,除了格式的區(qū)別,simple_tag和filter還有什么區(qū)別呢?

  • simple_tag可以使用任何個數(shù)的參數(shù),而filter只能最多2個參數(shù)

  • simple_tag不能作為if條件,而filter可以

  • simple_tag后面的參數(shù)直接的空格隨意, filter不能有空格

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統(tǒng)配攻擊溯源,準確進行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。


標題名稱:Django模板之自定義函數(shù)-創(chuàng)新互聯(lián)
文章轉(zhuǎn)載:http://weahome.cn/article/djjecs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部