Django 模板template 中实现加法,减法,乘法,除法运算
感觉很赞的一个设计,django的模板里面是用一个tags可以实现,加法,减法,乘法,除法的运算。嘿嘿
先看一下django 官方的解释
For creating bar charts and such, this tag calculates the ratio of a given
value to a maximum value, and then applies that ratio to a constant.
For example::
<img src='bar.gif' height='10' width='{% widthratio this_value max_value 100 %}' />
Above, if ``this_value`` is 175 and ``max_value`` is 200, the image in
the above example will be 88 pixels wide (because 175/200 = .875;
.875 * 100 = 87.5 which is rounded up to 88).
这说明,widthratio 通常用来显示图表,比例时用的,一个数字占了多少百分比等。但仔细想想,如果将某些数字变成特定的数字,不就是乘除法运算了吗?请看:
乘法 A*B: {% widthratio A 1 B %} 除法 A/B: {% widthratio A B 1 %} 利用 add 这个filter ,可以做更疯狂的事: 计算 A^2: {% widthratio A 1 A %} 计算 (A+B)^2: {% widthratio A|add:B 1 A|add:B %} 计算 (A+B) * (C+D): {% widthratio A|add:B 1 C|add:D %}
当然,这种方法在django中实现乘除法比较变态,看起来也不爽,更好的方法,是可以扩展自己的标签。在后面打算自己扩展一个计算乘法的标签,应该好很多。
Django 的模板中的数学运算
前言
django模板只提供了加法的filter,没有提供专门的乘法和除法运算;
django提供了widthratio的tag用来计算比率,可以变相用于乘法和除法的计算。
加法
{{value|add:10}}
note:value=5,则结果返回15
减法
{{value|add:-10}}
note:value=5,则结果返回-5,加一个负数就是减法了
乘法
{% widthratio 5 1 100%}
note:等同于:(5 / 1) * 100 ,结果返回500,withratio需要三个参数,它会使用参数1/参数2*参数3的方式进行运算,进行乘法运算,使「参数2」=1
除法
{% widthratio 5 100 1%}
note:等同于:(5 / 100) * 1,则结果返回0.05,和乘法一样,使「参数3」= 1就是除法了。
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2016-10-04 04:47:09
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!