django学习之- simple_tag

如何将前端的数据直接通过python模块进行渲染,使用django的simple_tag功能,如下

django后端编写:

1:在对应的app目录下创建目录:templatetags

2:在templatetags目录内创建一个python模块,比如名称为:simple_tag.py

from django import template

register = template.Library()

@register.simple_tag
def sim(a,b):
    return a+b
实现的结果是:将前端传过来的参数进行加法,然后将结果返回

3:此APP必须在setting内注册

前端编写

1:在需要使用此模块的页面顶部加载模块

{% load simple_tag %}  # 这个为加载的python模块名称

2:在页面body内调用此模块中的函数处理数据

{% sim 3 5 %}
这里将调用sim模块,将3和5传入此函数中进行处理
缺点:不能作为if条件
优点:参数任意个


使用filter

django后端编写:

1:在对应的app目录下创建目录:templatetags

2:在templatetags目录内创建一个python模块,比如名称为:simple_tag.py

from django import template
 
register = template.Library()
@register.filter
def f(s1,s2):
    return s1+s2
实现的结果是:将前端传过来的参数进行字符串拼接,然后将结果返回

3:此APP必须在setting内注册

前端编写

1:在需要使用此模块的页面顶部加载模块

{% load simple_tag %}  # 这个为加载的python模块名称

2:在页面body内调用此模块中的函数处理数据

{{ "参数1"|函数名:"参数2" }}
这里将调用sim模块,将3和5传入此函数中进行处理
缺点:参数任意,但不能超过2个
优点:能作为if条件
简单用法如上。

原文地址:https://www.cnblogs.com/zy6103/p/8987727.html