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 相关文章推荐
ssh批量登录并执行命令的python实现代码
May 25 Python
python调用java模块SmartXLS和jpype修改excel文件的方法
Apr 28 Python
在Django中使用Sitemap的方法讲解
Jul 22 Python
python发送邮件功能实现代码
Jul 15 Python
python matplotlib 在指定的两个点之间连线方法
May 25 Python
Python面向对象之静态属性、类方法与静态方法分析
Aug 24 Python
django+echart绘制曲线图的方法示例
Nov 26 Python
python的pyecharts绘制各种图表详细(附代码)
Nov 11 Python
Python3.7基于hashlib和Crypto实现加签验签功能(实例代码)
Dec 04 Python
python 遗传算法求函数极值的实现代码
Feb 11 Python
Django设置Postgresql的操作
May 14 Python
Python序列化与反序列化相关知识总结
Jun 08 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
PHP三元运算符的结合性介绍
2012/01/10 PHP
深入PHP FTP类的详解
2013/06/13 PHP
php调用shell的方法
2014/11/05 PHP
javascript cookie操作类的实现代码小结附使用方法
2010/06/02 Javascript
javascript仿qq界面的折叠菜单实现代码
2012/12/12 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
JQuery实现可直接编辑的表格
2015/04/16 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
js实现prototype扩展的方法(字符串,日期,数组扩展)
2016/01/14 Javascript
jquery——九宫格大转盘抽奖实例
2017/01/16 Javascript
Node连接mysql数据库方法介绍
2017/02/07 Javascript
js获取当前周、上一周、下一周日期
2017/03/19 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
使用JSON格式提交数据到服务端的实例代码
2018/04/01 Javascript
详细分析JavaScript中的深浅拷贝
2020/09/17 Javascript
[09:43]DOTA2每周TOP10 精彩击杀集锦vol.5
2014/06/25 DOTA
Python模块学习 re 正则表达式
2011/05/19 Python
Python有序字典简单实现方法示例
2017/09/28 Python
Python中logging实例讲解
2019/01/17 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
详解python:time模块用法
2019/03/25 Python
python字符串的拼接方法总结
2019/11/18 Python
Python异常继承关系和自定义异常实现代码实例
2020/02/20 Python
Pandas的Apply函数具体使用
2020/07/21 Python
如何使用Python进行PDF图片识别OCR
2021/01/22 Python
html5手机端页面可以向右滑动导致样式受影响的问题
2018/06/20 HTML / CSS
美国皮靴公司自1863年:The Frye Company
2016/11/30 全球购物
全球游戏Keys和卡片市场:GamesDeal
2018/03/28 全球购物
几道PHP的面试题
2012/05/19 面试题
医学护理系毕业生求职信
2013/10/01 职场文书
医学生自荐信
2013/12/03 职场文书
打造完美自荐信
2014/01/24 职场文书
房产买卖委托公证书
2014/04/04 职场文书
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js