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中内建函数的简单用法说明
May 05 Python
浅谈Python数据类型之间的转换
Jun 08 Python
Python如何实现守护进程的方法示例
Feb 08 Python
分享6个隐藏的python功能
Dec 07 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
Feb 23 Python
python和shell监控linux服务器的详细代码
Jun 22 Python
一步步教你用python的scrapy编写一个爬虫
Apr 17 Python
浅谈python图片处理Image和skimage的区别
Aug 04 Python
更新升级python和pip版本后不生效的问题解决
Apr 17 Python
Python变量格式化输出实现原理解析
Aug 06 Python
Python常用模块函数代码汇总解析
Aug 31 Python
Python爬虫简单运用爬取代理IP的实现
Dec 01 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
玩家交还《星际争霸》原始码光盘 暴雪报以厚礼
2017/05/05 星际争霸
php字符串截取的简单方法
2013/07/04 PHP
PHP下载文件函数与用法示例
2019/09/27 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
2019/10/17 PHP
js location.replace与location.reload的区别
2010/09/08 Javascript
JS字符串截取函数实例
2013/12/27 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
vue下拉列表功能实例代码
2018/04/08 Javascript
微信小程序时间标签和时间范围的联动效果
2019/02/15 Javascript
微信小程序 wxParse插件显示视频问题
2019/09/27 Javascript
python采集百度百科的方法
2015/06/05 Python
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
使用Turtle画正螺旋线的方法
2017/09/22 Python
如何利用python制作时间戳转换工具详解
2018/09/12 Python
python全栈要学什么 python全栈学习路线
2019/06/28 Python
Django多数据库的实现过程详解
2019/08/01 Python
Python TCPServer 多线程多客户端通信的实现
2019/12/31 Python
基于tensorflow指定GPU运行及GPU资源分配的几种方式小结
2020/02/03 Python
基于python连接oracle导并出数据文件
2020/04/28 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
联想哥伦比亚网上商城:Lenovo Colombia
2017/01/10 全球购物
Priority Pass机场贵宾室会籍计划:全球超过1200间机场贵宾室
2018/08/26 全球购物
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
管理站站长岗位职责
2013/11/27 职场文书
商务邀请函范文
2014/01/14 职场文书
书法比赛获奖感言
2014/02/10 职场文书
2014年公司庆元旦活动方案
2014/03/05 职场文书
财务总监管理岗位职责
2014/03/08 职场文书
人力资源管理专业求职信
2014/07/23 职场文书
2014年党风廉政建设工作总结
2014/11/19 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
2015年工程部工作总结
2015/04/30 职场文书
团支部书记竞选稿
2015/11/21 职场文书