django自定义模板标签过程解析


Posted in Python onDecember 14, 2019

这篇文章主要介绍了django自定义模板标签过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

代码布局

自定义模板标签必须位于django的某个应用中

该应用中新建templatetags目录,和models.py,views.py同一级别

结构如下:

polls/
  __init__.py
  models.py
  templatetags/
    __init__.py
    poll_extras.py
  views.py

模板中调用标签:

{% load poll_extras %}

为了让load标签工作,该标签所在应用必须在INSTALLED_APPS中

templatetags里有多少个模块没有限制,因为{% load %}会载入给定模块名的标签过滤器,而不是应用的名称

为了成为一个可用的标签库,必须注册,放在模块顶部

from django import template
register=template.Library()

自定义标签过滤器

自定义过滤器就是一个带有一个或两个参数的Python 函数:

  • (输入的)变量的值 —— 不一定是字符串形式。
  • 参数的值 —— 可以有一个初始值,或者完全不要这个参数。

例如,在{{ var|foo:"bar" }}中,foo过滤器应当传入变量var和参数 "bar"。

def cut(value, arg):
  """Removes all values of arg from the given string"""
  return value.replace(arg, '')

下面是这个过滤器应该如何使用:

{{ somevariable|cut:"0" }}

大多数过滤器没有参数。在这种情况下,你的函数不带这个参数即可。示例?

def lower(value): # Only one argument.
  """Converts a string into all lowercase"""
  return value.lower()

注册自定义过滤器

方法1:

register.filter('cut', cut)
register.filter('lower', lower)

Library.filter()方法需要两个参数:

过滤器的名称(一个字符串对象)

编译的函数 ? 一个Python函数(不要把函数名写成字符串)

方法2:register.filter()用作装饰器

@register.filter(name='cut')
def cut(value, arg):
  return value.replace(arg, '')

@register.filter
def lower(value):
  return value.lower()

下边是实例:

django自定义模板标签过程解析

my.pyfrom django import template
register=template.Library()
@register.filter
def myadd(param):
  res=param+"************************"
  return res
@register.filter
def mycul(param,num):
  res=param*num
  return res
views.pydef tags(request):
  print("hello")
  return render(request,'mytags.html')
tags.html<body>
  {% load my %}
  {{ 'tags'|myadd }}

  {{ 'tags'|mycul:5 }}
</body>

结果:

tags************************ tagstagstagstagstags

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
探究Python的Tornado框架对子域名和泛域名的支持
May 02 Python
python训练数据时打乱训练数据与标签的两种方法小结
Nov 08 Python
Django中的forms组件实例详解
Nov 08 Python
python实现简单名片管理系统
Nov 30 Python
Python中断多重循环的思路总结
Oct 04 Python
Python数据可视化:饼状图的实例讲解
Dec 07 Python
Python3爬虫里关于Splash负载均衡配置详解
Jul 10 Python
Python和Bash结合在一起的方法
Nov 13 Python
python 获取谷歌浏览器保存的密码
Jan 06 Python
Python3爬虫ChromeDriver的安装实例
Feb 06 Python
Python中22个万用公式的小结
Jul 21 Python
python turtle绘图命令及案例
Nov 23 Python
django序列化serializers过程解析
Dec 14 #Python
Python搭建HTTP服务过程图解
Dec 14 #Python
Pyqt5自适应布局实例
Dec 13 #Python
解决安装pyqt5之后无法打开spyder的问题
Dec 13 #Python
PyQT5 emit 和 connect的用法详解
Dec 13 #Python
python Qt5实现窗体跟踪鼠标移动
Dec 13 #Python
Python assert关键字原理及实例解析
Dec 13 #Python
You might like
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
PHP使用GD库制作验证码的方法(点击验证码或看不清会刷新验证码)
2017/08/15 PHP
Ajax+PHP实现的删除数据功能示例
2019/02/12 PHP
推荐自用 Javascript 缩图函数 (onDOMLoaded)……
2007/10/23 Javascript
JavaScript入门教程(9) Document文档对象
2009/01/31 Javascript
CCPry JS类库 代码
2009/10/30 Javascript
自用js开发框架小成 学习js的朋友可以看看
2010/11/16 Javascript
jquery实现checkbox 全选/全不选的通用写法
2014/02/22 Javascript
node.js中的fs.lchownSync方法使用说明
2014/12/16 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
JavaScript ES6中export、import与export default的用法和区别
2017/03/14 Javascript
深入理解JavaScript和TypeScript中的class
2018/04/22 Javascript
JavaScript创建对象方式总结【工厂模式、构造函数模式、原型模式等】
2018/12/19 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
Vue+iview+webpack ie浏览器兼容简单处理
2019/09/20 Javascript
JavaScript实现与web通信的方法详解
2020/08/07 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
详解Vue中Axios封装API接口的思路及方法
2020/10/10 Javascript
JavaScript 防抖和节流遇见的奇怪问题及解决
2020/11/20 Javascript
简单介绍Python中的decode()方法的使用
2015/05/18 Python
Python实现计算最小编辑距离
2016/03/17 Python
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
2019/04/29 Python
python实现简单聊天室功能 可以私聊
2019/07/12 Python
Python字典中的值为列表或字典的构造实例
2019/12/16 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
Python Selenium库的基本使用教程
2021/01/04 Python
Mio Skincare英国官网:身体紧致及孕期身体护理
2018/08/19 全球购物
中学生操行评语大全
2014/04/24 职场文书
党日活动总结
2014/05/07 职场文书
地球物理学专业推荐信
2014/09/08 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书