成都网站建设设计

将想法与焦点和您一起共享

django如何自定义jinja2的tag与filter-创新互联

这篇文章主要为大家展示了“django如何自定义jinja2的tag与filter”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“django如何自定义jinja2的tag与filter”这篇文章吧。

目前成都创新互联公司已为上千多家的企业提供了网站建设、域名、网站空间成都网站托管、企业网站设计、蕲春网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

django默认使用jinja2模版。
jinja2模版自带各类filter与tag,也可以自定义。
主要格式
{{ variable }}
{{ variable|filter:arg}}
{% tag %}
官网http://jinja.pocoo.org/docs/2.10/

自定义过程如下:

1. 在app目录下创建固定包名templatetags,并创建py文件

django如何自定义jinja2的tag与filter

2. mytags.py
#/usr/bin/env python3

from django import  template
register=template.Library()

@register.filter()
def myfilter_name1(x,y):
    return x+y

@register.filter()
def myfilter_name2(x):
    return x*x

@register.simple_tag()
def mytag_name1(x,y):
    return x+y

用@register.filter()装饰filter  
用@register.simple_tag()装饰tag  
注意需要重启服务载入

3. html文件
{% load mytags %}



    
    Title



案例filter
ori:{{ n }}
{{ n|myfilter_name1:5 }}
{{ n|myfilter_name2 }}
案例 simple tag
{% mytag_name1 3 5 %}

首行{% load mytags %},即load py的文件名,tag即可直接使用
filter 格式  {{ 变量|filter:参数 }}
simpletag格式  {% tag 参数  参数 %}
功能上都可实现一些同样的操作。
部分场景filter更好使用如 {% if  n|filter >10 %}

4. 页面

django如何自定义jinja2的tag与filter

以上是“django如何自定义jinja2的tag与filter”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前标题:django如何自定义jinja2的tag与filter-创新互联
URL分享:http://chengdu.cdxwcx.cn/article/dddgsp.html