Python的Django框架中自定义模版标签的示例


Posted in Python onJuly 20, 2015

为了自定义一个模板标签,你需要告诉Django当遇到你的标签时怎样进行这个过程。

当Django编译一个模板时,它将原始模板分成一个个 节点 。每个节点都是 django.template.Node 的一个实例,并且具备 render() 方法。 于是,一个已编译的模板就是 节点 对象的一个列表。 例如,看看这个模板:

Hello, {{ person.name }}.

{% ifequal name.birthday today %}
  Happy birthday!
{% else %}
  Be sure to come back on your birthday
  for a splendid surprise message.
{% endifequal %}

被编译的模板表现为节点列表的形式:

  •     文本节点: "Hello, "
  •     变量节点: person.name
  •     文本节点: ".\n\n"
  •     IfEqual节点: name.birthday和today

当你调用一个已编译模板的 render() 方法时,模板就会用给定的context来调用每个在它的节点列表上的所有节点的 render() 方法。 这些渲染的结果合并起来,形成了模板的输出。 因此,要自定义模板标签,你需要指明原始模板标签如何转换成节点(编译函数)和节点的render()方法完成的功能 。

在下面的章节中,我们将详细解说写一个自定义标签时的所有步骤。

Python 相关文章推荐
使用PYTHON接收多播数据的代码
Mar 01 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
Jan 24 Python
使用python生成目录树
Mar 29 Python
pyqt5的QWebEngineView 使用模板的方法
Aug 18 Python
Python数据可视化之画图
Jan 15 Python
python安装requests库的实例代码
Jun 25 Python
windows 10 设定计划任务自动执行 python 脚本的方法
Sep 11 Python
python使用 __init__初始化操作简单示例
Sep 26 Python
解决python 读取excel时 日期变成数字并加.0的问题
Oct 08 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
Python Dataframe常见索引方式详解
May 27 Python
5 分钟读懂Python 中的 Hook 钩子函数
Dec 09 Python
详解在Python的Django框架中创建模板库的方法
Jul 20 #Python
简单介绍Python的Django框架加载模版的方式
Jul 20 #Python
在Django框架中编写Context处理器的方法
Jul 20 #Python
详解Django框架中用context来解析模板的方法
Jul 20 #Python
Django中URLconf和include()的协同工作方法
Jul 20 #Python
在Python的Django框架中包装视图函数
Jul 20 #Python
Django中URL视图函数的一些高级概念介绍
Jul 20 #Python
You might like
漫威DC御用漫画家去世 他的表情包曾走红网络
2020/04/09 欧美动漫
php 图片加水印与上传图片加水印php类
2010/05/12 PHP
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
php根据操作系统转换文件名大小写的方法
2014/02/24 PHP
php调用google接口生成二维码示例
2014/04/28 PHP
PHP return语句另类用法不止是在函数中
2014/09/17 PHP
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
2014/09/27 PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
2015/03/10 PHP
Yii调试查看执行SQL语句的方法
2016/07/15 PHP
jQuery 过滤not()与filter()实例代码
2012/05/10 Javascript
jquery 取子节点及当前节点属性值
2014/07/25 Javascript
JavaScript判断DIV内容是否为空的方法
2016/01/29 Javascript
AngularJS入门教程之AngularJS模型
2016/04/18 Javascript
jQuery实现的省市县三级联动菜单效果完整实例
2016/08/01 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
vue-router 路由基础的详解
2017/10/17 Javascript
node express使用HTML模板的方法示例
2019/08/22 Javascript
swiper自定义分页器的样式
2020/09/14 Javascript
[02:17]2016国际邀请赛中国区预选赛VG战队领队采访
2016/06/26 DOTA
python实现闹钟定时播放音乐功能
2018/01/25 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
Python描述符descriptor使用原理解析
2020/03/21 Python
python中的时区问题
2021/01/14 Python
服装厂厂长岗位职责
2013/12/27 职场文书
法务专员岗位职责
2014/01/02 职场文书
会展策划与管理专业大学生职业生涯规划
2014/02/07 职场文书
委托书范文
2014/04/02 职场文书
施工安全标语
2014/06/07 职场文书
分公司总经理岗位职责
2014/08/03 职场文书
2014年团队工作总结
2014/11/24 职场文书
十二生肖观后感
2015/06/12 职场文书
2015年社区重阳节活动总结
2015/07/30 职场文书
2016年万圣节家长开放日活动总结
2016/04/05 职场文书
利用 JavaScript 构建命令行应用
2021/11/17 Javascript
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
2022/04/29 Servers