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中解析JSON并同时进行自定义编码处理实例
Feb 08 Python
python中base64加密解密方法实例分析
May 16 Python
Python将图片批量从png格式转换至WebP格式
Aug 22 Python
flask框架中勾子函数的使用详解
Aug 01 Python
python 反编译exe文件为py文件的实例代码
Jun 27 Python
Python 50行爬虫抓取并处理图灵书目过程详解
Sep 20 Python
python处理document文档保留原样式
Sep 23 Python
python实现的汉诺塔算法示例
Oct 23 Python
tensorflow实现对张量数据的切片操作方式
Jan 19 Python
Python爬取新型冠状病毒“谣言”新闻进行数据分析
Feb 16 Python
Python包资源下载路径报404解决方案
Nov 05 Python
Python3中FuzzyWuzzy库实例用法
Nov 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的HTTP请求的库Requests实现美女图片墙
2015/02/22 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
PHP-X系列教程之内置函数的使用示例
2017/10/16 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
JavaScript面向对象知识串结(读JavaScript高级程序设计(第三版))
2012/07/17 Javascript
基于jQuery实现下拉收缩(展开与折叠)特效
2012/12/25 Javascript
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
3kb jQuery代码搞定各种树形选择的实现方法
2016/06/10 Javascript
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
2017/09/01 Javascript
微信提示 在浏览器打开 效果实现过程解析
2019/09/10 Javascript
Layui表格监听行单双击事件讲解
2019/11/14 Javascript
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
[56:20]LGD vs VP Supermajor 败者组决赛 BO3 第三场 6.10
2018/07/04 DOTA
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
详解Python中的strftime()方法的使用
2015/05/22 Python
python函数形参用法实例分析
2015/08/04 Python
Python解析json文件相关知识学习
2016/03/01 Python
Python实现读取字符串按列分配后按行输出示例
2018/04/17 Python
儿童编程python入门
2018/05/08 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
Pytorch 实现权重初始化
2019/12/31 Python
Python稀疏矩阵及参数保存代码实现
2020/04/18 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
IE10 Error.stack 让脚本调试更加方便快捷
2013/04/22 HTML / CSS
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
马来西亚在线时尚女装商店:KEI MAG
2017/09/28 全球购物
汇源肾宝广告词
2014/03/20 职场文书
电大毕业生自我鉴定
2014/04/10 职场文书
入职担保书范文
2014/05/21 职场文书
治庸问责心得体会
2014/09/12 职场文书
2015年幼儿园教育教学工作总结
2015/05/25 职场文书
文明礼仪主题班会
2015/08/13 职场文书