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代码
Mar 13 Python
python常见数制转换实例分析
May 09 Python
Python实现遍历数据库并获取key的值
May 17 Python
一些常用的Python爬虫技巧汇总
Sep 28 Python
pygame加载中文名mp3文件出现error
Mar 31 Python
Python基于time模块求程序运行时间的方法
Sep 18 Python
Python中列表list以及list与数组array的相互转换实现方法
Sep 22 Python
Python tkinter label 更新方法
Oct 11 Python
Python实现的简单线性回归算法实例分析
Dec 26 Python
python交易记录整合交易类详解
Jul 03 Python
Django rest framework jwt的使用方法详解
Aug 08 Python
pycharm设置python文件模板信息过程图解
Mar 10 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写入数据库类代码分享
2011/07/26 PHP
50个PHP程序性能优化的方法
2014/06/02 PHP
php检测数组长度函数sizeof与count用法
2014/11/17 PHP
Apache连接PHP后无法启动问题解决思路
2015/06/18 PHP
jquery中eq和get的区别与使用方法
2011/04/14 Javascript
javascript作用域和闭包使用详解
2014/04/25 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
纯js实现图片匀速淡入淡出效果
2017/08/22 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
webpack-dev-server自动更新页面方法
2018/02/22 Javascript
Vuex入门到上手教程
2018/06/20 Javascript
React中使用UEditor百度富文本的方法
2018/08/22 Javascript
实现Vue的markdown文档可以在线运行的方法示例
2018/12/11 Javascript
NestJs 静态目录配置详解
2019/03/12 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
[44:10]2018DOTA2亚洲邀请赛 4.5 淘汰赛 EG vs VP 第一场
2018/04/06 DOTA
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
状态机的概念和在Python下使用状态机的教程
2015/04/11 Python
Python将一个CSV文件里的数据追加到另一个CSV文件的方法
2018/07/04 Python
对python多线程中Lock()与RLock()锁详解
2019/01/11 Python
Python 去除字符串中指定字符串
2020/03/05 Python
Python如何实现邮件功能
2020/05/27 Python
Python用类实现扑克牌发牌的示例代码
2020/06/01 Python
Python使用eval函数执行动态标表达式过程详解
2020/10/17 Python
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
高中生学习计划书
2014/09/15 职场文书
教师自查自纠材料
2014/10/14 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
升职自荐信怎么写
2015/03/05 职场文书
2015年资料员工作总结
2015/04/25 职场文书
后天观后感
2015/06/08 职场文书
红楼梦读书笔记
2015/06/25 职场文书
2015年幼师个人工作总结
2015/10/15 职场文书
2019年警察入党转正申请书最新范文
2019/09/03 职场文书
nginx网站服务如何配置防盗链(推荐)
2021/03/31 Servers
Vue全家桶入门基础教程
2021/05/14 Vue.js