美文网首页Django笔记
Django笔记二十六之数据库函数之数学公式函数

Django笔记二十六之数据库函数之数学公式函数

作者: vv安的浅唱 | 来源:发表于2023-03-15 20:04 被阅读0次

这一篇来介绍一下公式函数,主要是数学公式。

其中 sin,cos 这种大多数情况下用不上的就不介绍了,主要介绍下面几种:

  1. Abs() 绝对值
  2. Ceil() 向上取整
  3. Floor() 向下取整
  4. Mod() 取余
  5. Power() 乘方
  6. Round() 四舍五入
  7. 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)

以上就是本篇笔记全部内容,下一篇将介绍数据库函数之文本函数。

原文链接:Django笔记二十六之数据库函数之数学公式函数

相关文章

  • [1172] Result consisted of more

    数据库函数查询对应多条数据

  • Django学习笔记----环境搭建基于Windows

    Django学习笔记之环境搭建Django: 1.18Python: 3.6Windows 10 Django安装...

  • 八.Excel数据库函数

    八.Excel数据库函数 1.数据库函数 DAVERAGE计算列表或数据库的字段中满足指定条件的值的平均值 DCO...

  • 第五章

    18.1.2~18.1.4 [TOC] 第五章:C函数 数学库函数 下图给出一些常用的数学库函数,x和y的数据类型...

  • Docker笔记之总结

    Docker笔记之Docker初体验Docker笔记之容器Docker笔记之网络管理Docker笔记之数据卷Doc...

  • Django学习笔记之数据模型

    2017/1/15 1:02:05 Django学习笔记之数据模型 1 创建模型 首先我们在项目中创建一个数据模型...

  • 数据库函数

    MySQL数据库 1.字符函数、2.数值运算符与函数、3.比较运算符与函数、4日期时间函数、5.信息函数、...

  • 数据库函数

    感觉这个方法在java中实现有点复杂,遂在oracle中实现。 CREATE OR REPLACE FUNCTIO...

  • Hello Django

    主题 Django学习笔记之输出Hello Django 方法一 调用HttpResponse类向浏览器返回‘He...

  • 嵌入式LwIP学习笔记之数据包管理2

    一、其他数据包操作函数 本章接上篇《嵌入式LwIP学习笔记之数据包管理1》,继续讲解其他的数据包操作函数, pbu...

网友评论

    本文标题:Django笔记二十六之数据库函数之数学公式函数

    本文链接:https://www.haomeiwen.com/subject/fkukrdtx.html