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实现LRU算法的2种方法
Jun 24 Python
Python图片裁剪实例代码(如头像裁剪)
Jun 21 Python
详谈在flask中使用jsonify和json.dumps的区别
Mar 26 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
Dec 07 Python
Python实现微信消息防撤回功能的实例代码
Apr 29 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
Apr 30 Python
Python实现打印实心和空心菱形
Nov 23 Python
如何定义TensorFlow输入节点
Jan 23 Python
TensorFlow 多元函数的极值实例
Feb 10 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
Jun 06 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
Jun 28 Python
python如何调用百度识图api
Sep 29 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
站长助手-网站web在线管理程序 v1.0 下载
2007/05/12 PHP
PHP 进程锁定问题分析研究
2009/11/24 PHP
下拉列表多级联动dropDownList示例代码
2013/06/27 PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
2014/06/12 PHP
ThinkPHP实现将本地文件打包成zip下载
2014/06/26 PHP
Yii实现MySQL多数据库和读写分离实例分析
2014/12/03 PHP
PHP递归实现层级树状展开
2016/04/01 PHP
JS获取dom 对象 ajax操作 读写cookie函数
2009/11/18 Javascript
自写的一个jQuery圆角插件
2010/10/26 Javascript
javascript操作css属性
2013/12/30 Javascript
JavaScript中的this关键字使用详解
2015/08/14 Javascript
Javascript实现Array和String互转换的方法
2015/12/21 Javascript
JavaScript纯色二维码变成彩色二维码
2020/07/23 Javascript
关于Vue.nextTick()的正确使用方法浅析
2017/08/25 Javascript
angular.js实现购物车功能
2017/10/23 Javascript
json数据传到前台并解析展示成列表的方法
2018/08/06 Javascript
vue3.0 CLI - 2.6 - 组件的复用入门教程
2018/09/14 Javascript
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
element-ui upload组件多文件上传的示例代码
2018/10/17 Javascript
详解vue 命名视图
2019/08/14 Javascript
JS模拟实现京东快递单号查询
2020/11/30 Javascript
[02:22:36]《加油!DOTA》总决赛
2014/09/19 DOTA
python实现写数字文件名的递增保存文件方法
2018/10/25 Python
django ajax发送post请求的两种方法
2020/01/05 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
win7上tensorflow2.2.0安装成功 引用DLL load failed时找不到指定模块 tensorflow has no attribute xxx 解决方法
2020/05/20 Python
python 常用日期处理-- datetime 模块的使用
2020/09/02 Python
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
字符串str除首尾字符外的其他字符按升序排列
2013/03/08 面试题
Android面试宝典
2013/08/06 面试题
受欢迎的大学生自我评价
2013/12/05 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书
大学生学习十八届五中全会精神心得体会
2016/01/05 职场文书
学生检讨书范文
2019/06/24 职场文书
分享几个JavaScript运算符的使用技巧
2021/04/24 Javascript
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android