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的Django框架中Manager方法的使用
Jul 21 Python
深入理解Python对Json的解析
Feb 14 Python
利用numpy+matplotlib绘图的基本操作教程
May 03 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
May 16 Python
在python 不同时区之间的差值与转换方法
Jan 14 Python
Django模型序列化返回自然主键值示例代码
Jun 12 Python
opencv 图像加法与图像融合的实现代码
Jul 08 Python
python实现数字炸弹游戏
Jul 17 Python
vscode调试django项目的方法
Aug 06 Python
python3 re返回形式总结
Nov 20 Python
详解Python遍历列表时删除元素的正确做法
Jan 07 Python
Appium中scroll和drag_and_drop根据元素位置滑动
Feb 15 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程序的国际化实现方法(利用gettext)
2011/08/14 PHP
php实现等比例不失真缩放上传图片的方法
2016/11/14 PHP
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
js定时器怎么写?就是在特定时间执行某段程序
2013/10/11 Javascript
浅析jQuery1.8的几个小变化
2013/12/10 Javascript
jquery+php实现滚动的数字特效
2015/11/29 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
2017/08/08 jQuery
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
微信小程序遍历Echarts图表实现多个饼图
2019/04/25 Javascript
Angular.JS读取数据库数据调用完整实例
2019/07/02 Javascript
微信小程序 如何获取网络状态
2019/07/26 Javascript
JS常用排序方法实例代码解析
2020/03/03 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
vue解决跨域问题(推荐)
2020/11/10 Javascript
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
python实现复制整个目录的方法
2015/05/12 Python
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
Sublime开发python程序的示例代码
2018/01/24 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
2018/02/18 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
pymysql 插入数据 转义处理方式
2020/03/02 Python
美国领先的水果篮送货公司和新鲜水果供应商:The Fruit Company
2018/02/13 全球购物
为什么需要版本控制
2016/10/28 面试题
银行求职推荐信范文
2013/11/30 职场文书
公司财务流程之主管工作流程
2014/03/03 职场文书
大学生精神文明先进个人事迹材料
2014/05/02 职场文书
大学生见习报告总结
2014/11/04 职场文书
项目备案申请报告
2015/05/15 职场文书
政工师工作总结2015
2015/05/26 职场文书
apache基于端口创建虚拟主机的示例
2021/04/22 Servers
Java实现多线程聊天室
2021/06/26 Java/Android
解决Mysql多行子查询的使用及空值问题
2022/01/22 MySQL
mapstruct的用法之qualifiedByName示例详解
2022/04/06 Java/Android