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

作者:轻舞肥羊 时间:2021-11-18 03:28:04 

本文实例讲述了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程序设计有所帮助。

来源:http://www.yihaomen.com/article/python/341.htm

标签:django,模板,变量
0
投稿

猜你喜欢

  • 如何在Python中引用其他模块

    2022-09-26 23:30:21
  • 网站前端和后台性能优化的34条宝贵经验和方法

    2024-01-21 19:29:54
  • Python数据结构详细

    2022-10-03 21:02:00
  • Python利用百度地图获取两地距离(附demo)

    2022-10-18 23:21:33
  • Keras使用ImageNet上预训练的模型方式

    2021-03-01 10:08:51
  • 天极产品设计流程

    2007-10-11 18:47:00
  • 解析Go 中的 rune 类型

    2023-09-19 11:59:16
  • 浅谈PYTHON 关于文件的操作

    2022-06-07 19:54:58
  • PyQt5 多窗口连接实例

    2021-06-17 01:32:09
  • python根据出生日期返回年龄的方法

    2023-10-10 23:04:53
  • Python实现线性判别分析(LDA)的MATLAB方式

    2022-07-21 02:38:34
  • Python中使用SAX解析xml实例

    2022-08-22 01:32:56
  • 如何过滤中国站长站(chianz)文章干扰码

    2008-01-04 20:14:00
  • python 简单的股票基金爬虫

    2021-03-13 19:34:46
  • asp如何实现网络打印?

    2010-05-24 18:31:00
  • 详解python实现读取邮件数据并下载附件的实例

    2022-04-21 00:59:14
  • MySql子查询IN的执行和优化的实现

    2024-01-15 01:32:10
  • 类型为search的input及相关属性

    2009-02-11 12:49:00
  • [多图]新:60个国外创意404页面设计

    2008-12-05 12:00:00
  • SQL分页查询方式汇总

    2024-01-24 00:33:29
  • asp之家 网络编程 m.aspxhome.com