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中调用ggplot的三种方法
Apr 08 Python
Python使用django获取用户IP地址的方法
May 11 Python
Python切片知识解析
Mar 06 Python
Python运算符重载详解及实例代码
Mar 07 Python
利用python将图片转换成excel文档格式
Dec 30 Python
python 找出list中最大或者最小几个数的索引方法
Oct 30 Python
Python Selenium 之关闭窗口close与quit的方法
Feb 13 Python
python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
Aug 28 Python
django 读取图片到页面实例
Mar 27 Python
Python实现转换图片背景颜色代码
Apr 30 Python
python绘制汉诺塔
Mar 01 Python
使用python向MongoDB插入时间字段的操作
May 18 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的历史和优缺点
2006/10/09 PHP
elgg 获取文件图标地址的方法
2010/03/20 PHP
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
给Javascript数组插入一条记录的代码
2007/08/30 Javascript
javascript RadioButtonList获取选中值
2009/04/09 Javascript
jquery ajax abort()的使用方法
2010/10/28 Javascript
JavaScript全排列的六种算法 具体实现
2013/06/29 Javascript
jquery easyui中treegrid用法的简单实例
2014/02/18 Javascript
jQuery应用之jQuery链用法实例
2015/01/19 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
2016/05/09 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
javascript实现无法关闭的弹框
2016/11/27 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
2018/01/24 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
2019/07/29 Javascript
vue使用i18n实现国际化的方法详解
2019/09/05 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
Python利用带权重随机数解决抽奖和游戏爆装备问题
2016/06/16 Python
Python中使用支持向量机(SVM)算法
2017/12/26 Python
python解析xml简单示例
2019/06/21 Python
python os.fork() 循环输出方法
2019/08/08 Python
关于python的缩进规则的知识点详解
2020/06/22 Python
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
基督教卡片、励志礼品、家居装饰等:DaySpring
2018/10/12 全球购物
关联、聚合(Aggregation)以及组合(Composition)的区别
2012/02/29 面试题
个人委托书怎么写
2014/04/04 职场文书
鉴定评语大全
2014/05/05 职场文书
2014年学校领导班子对照检查材料
2014/09/19 职场文书
群众路线领导干部个人对照检查材料(集锦)
2014/09/23 职场文书
五年级上册复习计划
2015/01/19 职场文书
庆元旦主持词
2015/07/06 职场文书
Vue3 Composition API的使用简介
2021/03/29 Vue.js