django框架模板中定义变量(set variable in django template)的方法分析

 更新时间:2019年06月24日 10:24:48   作者:轻舞肥羊  
这篇文章主要介绍了django框架模板中定义变量(set variable in django template)的方法,结合实例形式分析了Django框架实现模板中定义变量与变量赋值相关操作技巧,需要的朋友可以参考下

本文实例讲述了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基于Twilio及腾讯云实现国际国内短信接口

    Python基于Twilio及腾讯云实现国际国内短信接口

    这篇文章主要介绍了Python基于Twilio及腾讯云实现国际国内短信接口,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • 一篇文章搞懂Python的文件路径操作

    一篇文章搞懂Python的文件路径操作

    这篇文章主要给大家介绍了关于Python文件路径操作的相关资料,在python中我们会经常的对文件使用路径,文件路径通常有两种,分别为绝对路径、相对路径,需要的朋友可以参考下
    2023-07-07
  • 详解Python pygame安装过程笔记

    详解Python pygame安装过程笔记

    本篇文章主要介绍了详解Python pygame安装过程笔记。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • python3 如何使用 goto 跳转执行到指定代码行

    python3 如何使用 goto 跳转执行到指定代码行

    这篇文章主要介绍了python3 使用goto跳转执行到指定代码行的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • opencv 傅里叶变换的实现

    opencv 傅里叶变换的实现

    本文主要介绍了opencv 傅里叶变换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2022-06-06
  • python中的Numpy二维数组遍历与二维数组切片后遍历效率比较

    python中的Numpy二维数组遍历与二维数组切片后遍历效率比较

    这篇文章主要介绍了python中的Numpy二维数组遍历与二维数组切片后遍历效率比较,在python-numpy使用中,可以用双层 for循环对数组元素进行访问,也可以切片成每一行后进行一维数组的遍历,下面小编击来举例介绍吧,需要的朋友可以参考一下
    2022-03-03
  • python+matplotlib绘制简单的海豚(顶点和节点的操作)

    python+matplotlib绘制简单的海豚(顶点和节点的操作)

    这篇文章主要介绍了python+matplotlib绘制简单的海豚(顶点和节点的操作),具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • python实现简易图书管理系统

    python实现简易图书管理系统

    这篇文章主要为大家详细介绍了python实现简易图书管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • python实现redis三种cas事务操作

    python实现redis三种cas事务操作

    本篇文章主要介绍了python实现redis三种cas事务操作,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Python3爬虫学习之MySQL数据库存储爬取的信息详解

    Python3爬虫学习之MySQL数据库存储爬取的信息详解

    这篇文章主要介绍了Python3爬虫学习之MySQL数据库存储爬取的信息,涉及Python3针对mysql数据库的连接、信息存储等相关操作技巧,需要的朋友可以参考下
    2018-12-12

最新评论