Python网站开发必备-django模板自定义标签

网友投稿 332 2022-09-07


Python网站开发必备-django模板自定义标签

大家好,我是辣条哥

前面几天都没有上啥干的,应广大粉丝要求,今天来点干的不能再干的,而且应该也是现在很多人都比较缺乏的一块,所以看完一定要记得收藏,免得之后还找不到了

另外再补充一小点,最近不少人在问我那30个游戏源码跟一些案例源码,还有之前的学习路线图,免得你们找不到我放在下面了

目录

​​模板层之自定义标签​​

​​作用​​​​第一步​​​​第二步​​​​第三步​​​​第四步​​

​​对应模板层​​​​自定义过滤器​​

模板层之自定义标签

作用

-干什么用的?生成html的片段(动态,传参数,传数据)-app下新建一个模块,templatetags -创建一个py文件(mytag.py) -from django.template import Library -register=Library() ----->register名字一定不能变 -写装饰器(标签,过滤器,inclusion_tag) -@inclusion_tag('模板路径',name='重命名') -def my_in(): 不写,写多个,不写不传,写多个,按空格来传参 - 一堆逻辑处理,查数据库 - ret=Book.object.all() return {''books':ret} -在模板中: 可以用books这个变量,渲染页面 -应用: -在另一个模板中: -{%load mytag.py%} -{% my_in %}

第一步

先app01是不是已经在setting中注册

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

第二步

在app01下创建一个templatetags(名字不能变)的文件夹(模块)

第三步

第四步

mytag.py中的内容:

# 第一种导入方式# 第一步,导入template# from django import template# 第二步,定义一个叫register的变量=template.Library()# register = template.Library()# 或者from django.template import Libraryregister = Library()# 第三步的第一种@register.filter()def sadd(str1): # 业务逻辑很复杂哦 return str1 + 1# 第三步的第一种@register.filter(name = 'myadd')def sadd(str1): # 业务逻辑很复杂哦 return str1 + 1

对应模板层

第四步第一种模板直接调用函数sadd函数

{% load mytag %}{{ 3|sadd }}

第四步第二种在模板中使用 myadd 是解析

{% load mytag %}{{ 4|myadd }}

自定义过滤器

-1-4:前4步,根过滤器的定义完全一样 -5 只是装饰器不一样 @register.simple_tag() def add_nb(value): return value+'nb' -6 在模板里:(多个参数,以空格区分) -{% load mytag %} -{% add_nb 'lqz'%}

小提示:不能用if判断


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详解Java 加密解密和数字签名问题
下一篇:容易让人没朋友的python整蛊小程序,纯属娱乐慎用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~