django框架模板中定义变量(set variable in django template)的方法分析


Posted in Python onJune 24, 2019

本文实例讲述了django框架模板中定义变量的方法。分享给大家供大家参考,具体如下:

总有一些情况,你会想在django template中设置临时变量,但是django 对在模板中对临时变量的赋值没有很好的开箱即用的tag 或者filter。但是还是能通过一些其他方法实现的。

1. 利用 django 自带的 with 标签实现
2. 利用自定义 tag  实现,应该灵活很多.

利用 django 自带的 with 标签实现对变量赋值

好像在django 1.3 之后才支持这种做法

从context中得到值进行赋值

{% with total=business.employees.count %}
  {{ total }} employee{{ total|pluralize }}
{% endwith %}

当然也可以直接给一个常量

{%with age=100%}
{{ age|add:"2" }}
....
{%with%}

2 自定义标签方式现实在django template 中给变量赋值

from django import template
register = template.Library()
class SetVarNode(template.Node):
  def __init__(self, var_name, var_value):
    self.var_name = var_name
    self.var_value = var_value
  def render(self, context):
    try:
      value = template.Variable(self.var_value).resolve(context)
    except template.VariableDoesNotExist:
      value = ""
    context[self.var_name] = value
    return u""
def set_var(parser, token):
  """
    {% set <var_name> = <var_value> %}
  """
  parts = token.split_contents()
  if len(parts) < 4:
    raise template.TemplateSyntaxError("'set' tag must be of the form: {% set <var_name> = <var_value> %}")
  return SetVarNode(parts[1], parts[3])
register.tag('set', set_var)

在 template 中应用时,现在模板中load这个标签所在文件。然后用类似如下方式处理

{% load set_var %}
{% set a = 3 %}
{% set b = some_context_variable %}
{% set c = "some string" %}

这样就实现了在django 模板中 对变量进行赋值和处理.

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
python实现下载文件的三种方法
Feb 09 Python
Python tkinter模块中类继承的三种方式分析
Aug 08 Python
python 给DataFrame增加index行名和columns列名的实现方法
Jun 08 Python
Python模块、包(Package)概念与用法分析
May 31 Python
Python处理时间日期坐标轴过程详解
Jun 25 Python
Python 中使用 PyMySQL模块操作数据库的方法
Nov 10 Python
python实现布隆过滤器及原理解析
Dec 08 Python
如何基于Python实现电子邮件的发送
Dec 16 Python
python正则表达式实例代码
Mar 03 Python
django admin后管定制-显示字段的实例
Mar 11 Python
深入浅析pycharm中 Make available to all projects的含义
Sep 15 Python
python爬虫分布式获取数据的实例方法
Nov 26 Python
django框架model orM使用字典作为参数,保存数据的方法分析
Jun 24 #Python
python对文件目录的操作方法实例总结
Jun 24 #Python
详解10个可以快速用Python进行数据分析的小技巧
Jun 24 #Python
python跳出双层for循环的解决方法
Jun 24 #Python
解决python xx.py文件点击完之后一闪而过的问题
Jun 24 #Python
解决python执行不输出系统命令弹框的问题
Jun 24 #Python
python实现在cmd窗口显示彩色文字
Jun 24 #Python
You might like
从MySQL数据库表中取出随机数据的代码
2007/09/05 PHP
MongoDB在PHP中的常用操作小结
2014/02/20 PHP
PHP实现基于mysqli的Model基类完整实例
2016/04/08 PHP
Laravel模型事件的实现原理详解
2018/03/14 PHP
js各种验证文本框输入格式(正则表达式)
2010/10/22 Javascript
ASP.NET jQuery 实例5 (显示CheckBoxList成员选中的内容)
2012/01/13 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
轻松创建nodejs服务器(6):作出响应
2014/12/18 NodeJs
基于jQuery仿淘宝产品图片放大镜特效
2020/10/19 Javascript
jquery实现网站列表切换效果的2种方法
2016/08/12 Javascript
JS创建对象的写法示例
2016/11/04 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
bootstrap实现动态进度条效果
2017/03/08 Javascript
easyui-edatagrid.js实现回车键结束编辑功能的实例
2017/04/12 Javascript
详解jquery插件jquery.viewport.js学习使用方法
2017/09/08 jQuery
es6数组的flat(),flatMap()函数用法实例分析
2020/04/18 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
2018/06/25 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
用Python实现数据的透视表的方法
2018/11/16 Python
python OpenCV GrabCut使用实例解析
2019/11/11 Python
python实现简单坦克大战
2020/03/27 Python
python实现逢七拍腿小游戏的思路详解
2020/05/26 Python
python三引号如何输入
2020/07/06 Python
Python 如何调试程序崩溃错误
2020/08/03 Python
css3实现一款模仿iphone样式的注册表单
2013/03/20 HTML / CSS
Html5页面内使用JSON动画的实现
2019/01/29 HTML / CSS
澳大利亚首屈一指的鞋类品牌:Tony Bianco
2018/03/13 全球购物
采购经理岗位职责
2014/02/16 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
2015年暑期社会实践活动总结
2015/03/27 职场文书
2015年档案管理员工作总结
2015/05/13 职场文书
2015年物资管理工作总结
2015/05/20 职场文书
vue项目支付功能代码详解
2022/02/18 Vue.js
《火纹风花雪月无双》预告“神秘雇佣兵” 紫发剑客
2022/04/13 其他游戏
本地搭建minio文件服务器(使用bat脚本启动)的方法
2022/07/15 Servers