xone

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

filter

a、在app中创建templatetags模块

b、创建任意.py文件,如:xxoo.py

from django import template
from django.utils.safestring import mark_safe

register = template.Library()

@register.filter
def ya(value,v):

    temp = '<a href="http://www.baidu.com?t=%s">%s</a>'%(value,v)
    return mark_safe(temp)

 

c、在使用自定义filter的html文件中导入之前创建的xxoo.py文件名

{% load xxoo %}

d、使用filter

{{ 8|ya:'跳转' }}

注:8是第一个参数,‘跳转’是第二个参数,filter只能传两个参数。

e.在settings中配置当前app,不然django无法找到自定义的simple_tag

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01',
)

 

 

simple_tag

a、在app中创建templatetags模块

b、创建任意 .py 文件,如:xx.py

from django import template
from django.utils.safestring import mark_safe
   
register = template.Library()
   
@register.simple_tag
def my_simple_time(v1,v2,v3):
    return  v1 + v2 + v3
   
@register.simple_tag
def my_input(id,arg):
    result = "<input type='text' id='%s' class='%s' />" %(id,arg,)
    return mark_safe(result)

c、在使用自定义simple_tag的html文件中导入之前创建的 xx.py 文件名

{% load xx %}

d、使用simple_tag

{% my_simple_time 1 2 3%}
{% my_input 'id_username' 'hide'%}

e、在settings中配置当前app,不然django无法找到自定义的simple_tag

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01',
)

 

simple_tag缺点:不能在前端用作if else判断条件,filter可以。

filter缺点:不能传任意参数,simple_tag可以。

 

posted on 2017-04-14 09:18  周小百  阅读(672)  评论(0)    收藏  举报