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 相关文章推荐
go和python调用其它程序并得到程序输出
Feb 10 Python
从零学Python之hello world
May 21 Python
使用基于Python的Tornado框架的HTTP客户端的教程
Apr 24 Python
numpy自动生成数组详解
Dec 15 Python
Python代码缩进和测试模块示例详解
May 07 Python
对python判断是否回文数的实例详解
Feb 08 Python
PyQt5 如何让界面和逻辑分离的方法
Mar 24 Python
解决python DataFrame 打印结果不换行问题
Apr 09 Python
详解tensorflow2.x版本无法调用gpu的一种解决方法
May 25 Python
详解Python3 定义一个跨越多行的字符串的多种方法
Sep 06 Python
Python request post上传文件常见要点
Nov 20 Python
python解包用法详解
Feb 17 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
PHP 的 __FILE__ 常量
2007/01/15 PHP
discuz加密解密函数使用方法和中文注释
2014/01/21 PHP
php使用ereg验证文件上传的方法
2014/12/16 PHP
PHP+MySQL存储数据常见中文乱码问题小结
2016/06/13 PHP
详解php用curl调用接口方法,get和post两种方式
2017/01/13 PHP
PHP实现正则匹配所有括号中的内容
2018/06/22 PHP
php 利用socket发送GET,POST请求的实例代码
2020/07/04 PHP
脚本吧 - 幻宇工作室用到js,超强推荐expand.js
2006/12/23 Javascript
document.documentElement &amp;&amp; document.documentElement.scrollTop
2007/12/01 Javascript
PHP开发者必须掌握的6个关键字
2014/04/14 Javascript
jquery使用jxl插件导出excel示例
2014/04/14 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
Node.js返回JSONP详解
2016/05/18 Javascript
jQuery模仿单选按钮选中效果
2016/06/24 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
vue-router配合ElementUI实现导航的实例
2018/02/11 Javascript
Vue中在新窗口打开页面及Vue-router的使用
2018/06/13 Javascript
vue-router的两种模式的区别
2019/05/30 Javascript
vue 使用v-for进行循环的实例代码详解
2020/02/19 Javascript
Django的数据模型访问多对多键值的方法
2015/07/21 Python
Python使用win32com实现的模拟浏览器功能示例
2017/07/13 Python
python批量查询、汉字去重处理CSV文件
2018/05/31 Python
python实现简单flappy bird
2018/12/24 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
python如何更新包
2020/06/11 Python
Keras自动下载的数据集/模型存放位置介绍
2020/06/19 Python
味多美官网:蛋糕订购,100%使用天然奶油
2017/11/10 全球购物
经典c++面试题六
2012/01/18 面试题
委托证明书
2014/09/17 职场文书
销售员态度差检讨书
2014/10/26 职场文书
单身证明范本
2015/06/15 职场文书
新年寄语2016
2015/08/17 职场文书
反腐倡廉心得体会2016
2016/01/13 职场文书
星际争霸:毕姥爷vs解冻03
2022/04/01 星际争霸