当前位置: 首页 > news >正文

模板引擎语法-算术运算

模板引擎语法-算术运算

文章目录

  • 模板引擎语法-算术运算
    • @[toc]
    • 1.加法运算
    • 2.减法运算
    • 3.乘法与除法运算
    • 4.四则运算
    • 5.整除运算

在Django框架模板中,没有专门定义关于算术运算的语法。不过,通过一些标签和过滤器的配合使用,可以模拟实现类似“加减乘除”的算术运算。

1.加法运算

在Django模板中定义了一个add过滤器,通过该过滤器可以模拟实现加法运算。

文件路径【TmplSite/gramapp/views.py】

from django.http import HttpResponse
from django.shortcuts import render
from django.template import loader
from datetime import datetime, date# Create your views here.def index(request):return HttpResponse("Hello, Django! You're at the gramapp index.")def filters(request):context = {}context['title'] = "Django Template Grammar"context['filters'] = "filters"context['add_num_1'] = 1context['add_num_2'] = 2context['add_num_3'] = 3template = loader.get_template('gramapp/filters.html')return HttpResponse(template.render(context, request))

【代码分析】

在变量context中添加了第一个属性add_num_1,并赋值为整数1。

在变量context中添加了第二个属性add_num_2,并赋值为整数2。

在变量context中添加了第三个属性add_num_3,并赋值为整数3。

文件路径【TmplSite/gramapp/templates/gramapp/filters.html】

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><link rel="stylesheet" type="text/css" href="/static/css/mystyle.css"/><title>{{ title }}</title>
</head>
<body><p class="middle">Hello, this is a template tag <b>{{ filters }}</b> page!
</p>
<p class="middle">filters - add:<br><br>A + B:<br>{{ add_num_1 }} + {{ add_num_2 }} = {{ add_num_1 | add:add_num_2 }}<br><br>A + B + C:<br>{{ add_num_1 }} + {{ add_num_2 }} + {{ add_num_3 }} = {{ add_num_1 | add:add_num_2 | add:add_num_3 }}<br><br>
</p></body>
</html>

【代码分析】

对变量add_num_1使用了add过滤器,其参数定义为变量add_num_2,这样,就相当于将变量add_num_2叠加到变量add_num_1上,实现了两个整数的加法运算。

先对变量add_num_1使用了add过滤器,其参数定义为变量add_num_2,然后,通过“链接”的方式再次使用add过滤器,其参数定义为变量add_num_3。这样,就相当于将变量add_num_1、变量add_num_2、变量add_num_3进行了叠加,实现了三个整数的连加运算。

【访问验证】

在这里插入图片描述


2.减法运算

在Django模板中没有定义减法过滤器,不过通过add过滤器同样可以模拟实现减法运算。

文件路径【TmplSite/gramapp/views.py】

from django.http import HttpResponse
from django.shortcuts import render
from django.template import loader
from datetime import datetime, date# Create your views here.def index(request):return HttpResponse("Hello, Django! You're at the gramapp index.")def filters(request):context = {}context['title'] = "Django Template Grammar"context['filters'] = "filters"context['minus_num_1'] = 10context['minus_num_2'] = -5context['minus_num_3'] = -3template = loader.get_template('gramapp/filters.html')return HttpResponse(template.render(context, request))

【代码分析】

在变量context中添加了第一个属性minus_num_1,并赋值为整数10。

在变量context中添加了第二个属性minus_num_2,并赋值为整数-5。

在变量context中添加了第三个属性minus_num_3,并赋值为整数-3。

文件路径【TmplSite/gramapp/templates/gramapp/filters.html】

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><link rel="stylesheet" type="text/css" href="/static/css/mystyle.css"/><title>{{ title }}</title>
</head>
<body><p class="middle">Hello, this is a template tag <b>{{ filters }}</b> page!
</p>
<p class="middle">filters - add:<br><br>A - B:<br>{{ minus_num_1 }}{{ minus_num_2 }} = {{ minus_num_1 | add:minus_num_2 }}<br><br>A - B - C:<br>{{ minus_num_1 }}{{ minus_num_2 }}{{ minus_num_3 }} = {{ minus_num_1 | add:minus_num_2 | add:minus_num_3}}<br><br>
</p></body>
</html>

【代码分析】

对变量minus_num_1使用了add过滤器,其参数定义为变量minus_num_2。这样,就相当于将负整数(add_num_2)叠加到整数(add_num_1)上,实现了两个整数的减法运算。

先对变量minus_num_1使用了add过滤器,其参数定义为变量minus_num_2,然后,通过“链接”的方式再次使用add过滤器,其参数定义为变量minus_num_3。这样,就相当于将整数minus_num_1、负整数minus_num_2和负整数minus_num_3进行了叠加,实现了三个整数的连减运算。

【访问验证】

在这里插入图片描述


3.乘法与除法运算

在Django模板中没有专门定义乘除法标签过滤器,不过利用{% widthratio %}标签的特性,可以模拟实现乘除法运算。

文件路径【TmplSite/gramapp/views.py】

from django.http import HttpResponse
from django.shortcuts import render
from django.template import loader
from datetime import datetime, date# Create your views here.def index(request):return HttpResponse("Hello, Django! You're at the gramapp index.")def filters(request):context = {}context['title'] = "Django Template Grammar"context['filters'] = "filters"context['multi_div_1'] = 6context['multi_div_2'] = 3template = loader.get_template('gramapp/filters.html')return HttpResponse(template.render(context, request))

【代码分析】

在变量context中添加了第一个属性multi_div_1,并赋值为整数6。

在变量context中添加了第二个属性multi_div_2,并赋值为整数3。

文件路径【TmplSite/gramapp/templates/gramapp/filters.html】

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><link rel="stylesheet" type="text/css" href="/static/css/mystyle.css"/><title>{{ title }}</title>
</head>
<body><p class="middle">Hello, this is a template tag <b>{{ filters }}</b> page!
</p>
<p class="middle">filters - multiply & divide:<br><br>A &times; B:<br>{{ multi_div_1 }} &times; {{ multi_div_2 }} = {% widthratio multi_div_1 1 multi_div_2 %}<br><br>A &divide; B:<br>{{ multi_div_1 }} &divide; {{ multi_div_2 }} = {% widthratio multi_div_1 multi_div_2 1 %}<br><br>
</p></body>
</html>

【代码分析】

通过{% widthratio multi_div_1 1 multi_div_2 %}标签对变量multi_div_1和变量multi_div_2进行乘法运算。

通过{% widthratio multi_div_1 1 multi_div_2 %}标签对变量multi_div_1和变量multi_div_2进行除法运算。

【访问验证】
在这里插入图片描述


4.四则运算

综合利用上面介绍的加、减、乘、除运算,自然可以实现复杂的四则运算。

文件路径【TmplSite/gramapp/views.py】

from django.http import HttpResponse
from django.shortcuts import render
from django.template import loader
from datetime import datetime, date# Create your views here.def index(request):return HttpResponse("Hello, Django! You're at the gramapp index.")def filters(request):context = {}context['title'] = "Django Template Grammar"context['filters'] = "filters"context['alg_num_1'] = 10context['alg_num_2'] = 5context['alg_num_3'] = -2template = loader.get_template('gramapp/filters.html')return HttpResponse(template.render(context, request))

【代码分析】

在变量context中添加了第一个属性alg_num_1,并赋值为整数10。

在变量context中添加了第二个属性alg_num_2,并赋值为整数5。

在变量context中添加了第三个属性alg_num_3,并赋值为整数-2。

文件路径【TmplSite/gramapp/templates/gramapp/filters.html】

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><link rel="stylesheet" type="text/css" href="/static/css/mystyle.css"/><title>{{ title }}</title>
</head>
<body><p class="middle">Hello, this is a template tag <b>{{ filters }}</b> page!
</p>
<p class="middle">filters - add & minus & multiply & divide:<br><br>({{ alg_num_1 }}+{{ alg_num_2 }}{{ alg_num_3 }})^2&nbsp;&nbsp;=&nbsp;&nbsp;{% widthratio alg_num_1|add:alg_num_2|add:alg_num_3 1 alg_num_1|add:alg_num_2|add:alg_num_3 %}<br><br>({{ alg_num_1 }}+{{ alg_num_2 }})&divide;({{ alg_num_2 }}{{ alg_num_3 }})&nbsp;&nbsp;=&nbsp;&nbsp;{% widthratio alg_num_1|add:alg_num_2 alg_num_2|add:alg_num_3 1 %}
</p></body>
</html>

【代码分析】

先通过add过滤器实现了连加和连减运算,然后通过{% widthratio %}标签实现了平方运算。

先通过add过滤器实现了连加和加减运算,然后通过{% widthratio %}标签实现了除法运算,相当于实现了“先加减、后乘除”的四则运算。

【访问验证】
在这里插入图片描述


5.整除运算

在Django模板中,提供了一个divisibleby过滤器可以实现整除运算,如果能整除,则返回True,否则返回False。

文件路径【TmplSite/gramapp/views.py】

from django.http import HttpResponse
from django.shortcuts import render
from django.template import loader
from datetime import datetime, date# Create your views here.def index(request):return HttpResponse("Hello, Django! You're at the gramapp index.")def filters(request):context = {}context['title'] = "Django Template Grammar"context['filters'] = "filters"context['divisibleby_1'] = 10context['divisibleby_2'] = 5context['divisibleby_3'] = 3template = loader.get_template('gramapp/filters.html')return HttpResponse(template.render(context, request))

【代码分析】

在变量context中添加了第一个属性divisibleby_1,并赋值为整数10。

在变量context中添加了第二个属性divisibleby_2,并赋值为整数5。

在变量context中添加了第三个属性divisibleby_3,并赋值为整数3。

文件路径【TmplSite/gramapp/templates/gramapp/filters.html】

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><link rel="stylesheet" type="text/css" href="/static/css/mystyle.css"/><title>{{ title }}</title>
</head>
<body><p class="middle">Hello, this is a template tag <b>{{ filters }}</b> page!
</p>
<p class="middle">filters - divisibleby:<br><br>{{ divisibleby_1 }} % {{ divisibleby_2 }}:<br>{% if divisibleby_1|divisibleby:divisibleby_2 %}{{ divisibleby_1 }} &divide; {{ divisibleby_2 }} can divisibleby.{% else %}{{ divisibleby_1 }} &divide; {{ divisibleby_2 }} can not divisibleby.{% endif %}<br><br>{{ divisibleby_1 }} % {{ divisibleby_3 }}:<br>{% if divisibleby_1|divisibleby:divisibleby_3 %}{{ divisibleby_1 }} &divide; {{ divisibleby_3 }} can divisibleby.{% else %}{{ divisibleby_1 }} &divide; {{ divisibleby_3 }} can not divisibleby.{% endif %}</p></body>
</html>

【代码分析】

主要是通过divisibleby过滤器进行逻辑判断,检查整数divisibleby_1是否能够被整数divisibleby_2整除。然后,通过{% if-else-endif %}标签根据divisibleby过滤器返回的布尔值(True或False)输出相应的结果。

也是通过divisibleby过滤器进行逻辑判断,检查整数divisibleby_1是否能够被整数divisibleby_3整除。然后,通过{% if-else-endif %}标签根据divisibleby过滤器返回的布尔值(True或False)输出相应的结果。

【访问验证】
在这里插入图片描述

http://www.xdnf.cn/news/158653.html

相关文章:

  • BT169-ASEMI无人机专用功率器件BT169
  • Netmiko 源码解析
  • Gewechat启动启动报错
  • 计算机网络 | 应用层(3)-- 因特网中的电子邮件
  • PCL绘制点云+法线
  • 2025.04.26-饿了么春招笔试题-第三题
  • 网络原理 ——TCP 协议
  • Spring Boot 连接 Microsoft SQL Server 实现登录验证
  • 开源AI智能名片链动2+1模式S2B2C商城小程序源码赋能下的社交电商创业者技能跃迁与价值重构
  • 基于大模型底座重构司法信息系统
  • 软件设计原则
  • C语言中宏的高级应用
  • Astro canvas大屏从iotDA上抽取设备影子的参数的详细操作实施路径
  • 为什么vllm能够加快大模型推理速度?
  • 数据资产价值及其实现路径-简答题回顾
  • FPGA前瞻篇-组合逻辑电路设计-多路复用器
  • 比象AI创作系统,多模态大模型:问答分析+AI绘画+管理后台系统
  • 一、UI自动化测试01--认识和元素定位方法
  • NHANES指标推荐:DI-GM
  • 用python借用飞书机器人群发布定期内容
  • ShenNiusModularity项目源码学习(23:ShenNius.Admin.Mvc项目分析-8)
  • 第十六届蓝桥杯大赛软件赛省赛第二场 C/C++ 大学 A 组
  • 【数据结构刷题】顺序表与ArrayList
  • Linux下编译并打包MNN项目迁移至其他设备
  • Qt动态库信号崩溃问题解决方案
  • Leetcode刷题 由浅入深之哈希法——202. 快乐数
  • 机器学习(10)——神经网络
  • 《Python Web部署应知应会》Flask网站隐藏或改变浏览器URL:从Nginx反向代理到URL重写技术
  • 【人工智能之大模型】详述大模型中​AWQ(Activation-aware Weight Quantization)量化的关键步骤?
  • Three.js + React 实战系列-3D 个人主页:构建 Hero 场景组件(项目核心)✨