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解析发往本机的数据包示例 (解析数据包)
Jan 16 Python
Python 递归函数详解及实例
Dec 27 Python
python+pandas生成指定日期和重采样的方法
Apr 11 Python
pandas.DataFrame选取/排除特定行的方法
Jul 03 Python
Python json模块dumps、loads操作示例
Sep 06 Python
tensorflow实现逻辑回归模型
Sep 08 Python
python并发编程多进程 互斥锁原理解析
Aug 20 Python
python selenium实现发送带附件的邮件代码实例
Dec 10 Python
Flask 上传自定义头像的实例详解
Jan 09 Python
python怎么调用自己的函数
Jul 01 Python
Python3+Django get/post请求实现教程详解
Feb 16 Python
python cv2图像质量压缩的算法示例
Jun 04 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
虹吸式咖啡探讨–研磨
2021/03/03 冲泡冲煮
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
PHP处理二进制数据的实现方法
2016/06/13 PHP
JavaScript 入门·JavaScript 具有全范围的运算符
2007/10/01 Javascript
JavaScript 高级语法介绍
2009/06/15 Javascript
extjs 学习笔记 四 带分页的grid
2009/10/20 Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
JavaScript的递归之递归与循环示例介绍
2013/08/05 Javascript
如何用JavaScript定义一个类
2014/09/12 Javascript
BootStrap智能表单实战系列(六)表单编辑页面的数据绑定
2016/06/13 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
封装运动框架实战左右与上下滑动的焦点轮播图(实例)
2017/10/17 Javascript
js取小数点后两位四种方法
2019/01/18 Javascript
详解webpack-dev-middleware 源码解读
2020/03/23 Javascript
python使用socket向客户端发送数据的方法
2015/04/29 Python
python获得文件创建时间和修改时间的方法
2015/06/30 Python
Python编程中归并排序算法的实现步骤详解
2016/05/04 Python
python读写json文件的简单实现
2017/04/11 Python
Python编程判断一个正整数是否为素数的方法
2017/04/14 Python
利用python批量给云主机配置安全组的方法教程
2017/06/21 Python
python读写文件write和flush的实现方式
2020/02/21 Python
Python利用pip安装tar.gz格式的离线资源包
2020/09/14 Python
详解CSS3开启硬件加速的使用和坑
2017/08/21 HTML / CSS
使用 css3 实现圆形进度条的示例
2017/07/05 HTML / CSS
奥林匹亚体育:Olympia Sports
2020/12/30 全球购物
计算机专业个人简短的自我评价
2013/10/23 职场文书
运动会方阵口号
2014/06/07 职场文书
2014年师德师风工作总结
2014/11/25 职场文书
十佳少年事迹材料
2014/12/25 职场文书
导游词怎么写
2015/02/04 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
爱护环境建议书
2015/09/14 职场文书
在 HTML 页面中使用 React的场景分析
2022/01/18 Javascript