Django笔记二十六之数据库函数之数学公式函数
1.Django笔记二十四之数据库函数之比较和转换函数2.Django笔记二十五之数据库函数之日期函数
3.Django笔记二十六之数据库函数之数学公式函数
4.Django笔记二十八之数据库查询优化汇总5.Django笔记二十九之中间件介绍6.Django笔记三十之log日志记录详解7.Django笔记三十二之session登录验证操作8.Django笔记三十三之缓存操作9.Django笔记三十四之分页操作10.Django笔记三十五之admin后台界面介绍11.Django笔记三十六之单元测试汇总介绍12.Django笔记三十七之多数据库操作(补充版)13.Django笔记三十八之发送邮件14.Django笔记三十九之settings配置介绍15.Django笔记四十之运行Django环境的python脚本16.Django笔记四十一之Django中使用es17.Django笔记四十二之model使用validator验证器18.Django笔记四十三之使用uWSGI部署Django系统19.Django笔记四十四之Nginx+uWSGI部署Django以及Nginx负载均衡操作本文首发于公众号:Hunter后端
原文链接:Django笔记二十六之数据库函数之数学公式函数
这一篇来介绍一下公式函数,主要是数学公式。
其中 sin,cos 这种大多数情况下用不上的就不介绍了,主要介绍下面几种:
- Abs() 绝对值
- Ceil() 向上取整
- Floor() 向下取整
- Mod() 取余
- Power() 乘方
- Round() 四舍五入
- Sqrt() 获取平方根
我们用到下面这个 model:
class MathFunction(models.Model):
x = models.FloatField(null=True, default=None)
y = models.FloatField(null=True, default=None)
1、Abs() 绝对值
先来创建一下数据:
from blog.models import MathFunction
MathFunction.objects.create(x=1.2, y=-6.3)
使用绝对值的函数:
from django.db.models.functions import Abs
obj = MathFunction.objects.annotate(x_abs=Abs('x'), y_abs=Abs('y')).get(id=1)
print(obj.x_abs)
print(obj.y_abs)
也可以在过滤的时候用该函数,但是需要先将这个函数注册,使用方法如下:
from django.db.models import FloatField
from django.db.models.functions import Abs
FloatField.register_lookup(Abs)
MathFunction.objects.filter(x__abs__lte=2)
2、Ceil() 向上取整
向上取整
和绝对值一样,可以在取数和过滤的时候使用
取值:
from django.db.models.functions import Ceil
obj = MathFunction.objects.annotate(x_ceil=Ceil('x'), y_ceil=Ceil('y')).get(id=1)
print(obj.x_ceil)
print(obj.y_ceil)
过滤:
from django.db.models import FloatField
from django.db.models.functions import Ceil
FloatField.register_lookup(Ceil)
MathFunction.objects.filter(x__ceil=2)
3、Floor() 向下取整
向下取整,使用方法同向上取整。
4、Mod() 取余
取模,也就是取余,两个数相除之后的余数。
MathFunction.objects.create(x=3.6, y=1.1)
from django.db.models.functions import Mod
obj = MathFunction.objects.annotate(mod=Mod('x', 'y')).get(id=2)
print(obj.mod)
其效果等效于 x % y
5、Power() 乘方
乘方,Power('x', 'y') 相当于 x ** y
MathFunction.objects.create(x=3, y=2)
from django.db.models.functions import Power
obj = MathFunction.objects.annotate(power=Power('x', 'y')).get(id=3)
print(obj.power)
6、Round() 四舍五入
四舍五入,示例如下:
from django.db.models.functions import Round
obj = MathFunction.objects.annotate(
x_round=Round('x'),
y_round=Round('y')
).get(id=1)
print(obj.x_round)
print(obj.y_round)
7、Sqrt() 获取平方根
MathFunction.objects.create(x=9, y=25)
from django.db.models.functions import Sqrt
obj = MathFunction.objects.annotate(x_sqrt=Sqrt('x'), y_sqrt=Sqrt('y')).get(id=4)
print(obj.x_sqrt)
print(obj.y_sqrt)
以上就是本篇笔记全部内容,下一篇将介绍数据库函数之文本函数。
如果想获取更多后端相关文章,可扫码关注阅读:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!