当前位置: 首页 > 后端技术 > Python

DjangoNotes26数据库函数之数学公式函数

时间:2023-03-26 11:15:49 Python

本文介绍公式函数,主要是数学公式。其中,sin和cos这两个在大多数情况下用不到的就不介绍了。主要介绍如下:Abs()绝对值Ceil()向上舍入Floor()向下舍入Mod()Power()PowerRound()RoundingSqrt()求平方根我们使用如下模型:classMathFunction(models.Model):x=models.FloatField(null=True,default=None)y=models.FloatField(null=True,default=None)1,Abs()绝对值让我们首先创建数据:来自blog.modelsimportMathFunctionMathFunction.objects.create(x=1.2,y=-6.3)使用绝对值的函数:fromdjango.db.models.functionsimportAbsobj=MathFunction.objects.annotate(x_abs=Abs('x'),y_abs=Abs('y')).get(id=1)print(obj.x_abs)print(obj.y_abs)过滤时也可以使用这个函数,但是需要先注册这个函数,使用方法如下:fromdjango.db.modelsimportFloatFieldfromdjango.db.models.functionsimportAbsFloatField.register_lookup(Abs)MathFunction.objects.filter(x__abs__lte=2)2.ceil()四舍五入和绝对值一样,可以用取值时的值nd过滤:fromdjango.db.models.functionsimportCeilobj=MathFunction.objects.annotate(x_ceil=Ceil('x'),y_ceil=Ceil('y')).get(id=1)print(obj.x_ceil)打印(obj.y_ceil)过滤器:从django.db.models导入FloatFieldfromdjango.db.models.functionsimportCeilFloatField.register_lookup(Ceil)MathFunction.objects.filter(x__ceil=2)3、Floor()向下取整,使用方法同roundup4、Mod()Modulo,即,取余,两个数相除后的余数。MathFunction.objects.create(x=3.6,y=1.1)来自django.db.models.functionsimportModobj=MathFunction.objects.annotate(mod=Mod('x','y')).get(id=2)print(obj.mod)其效果相当于x%y5,Power()平方次方,Power('x','y')相当于x**yMathFunction.objects.create(x=3,y=2)fromdjango.db.models.functionsimportPowerobj=MathFunction.objects.annotate(power=Power('x','y')).get(id=3)print(obj.power)6、Round()四舍五入,例子如下:fromdjango.db.models.functionsimportRoundobj=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)fromdjango.db.models.functionsimportSqrtobj=MathFunction.objects.annotate(x_sqrt=Sqrt('x'),y_sqrt=Sqrt('y')).get(id=4)print(obj.x_sqrt)print(obj.y_sqrt)以上就是这篇笔记的全部内容,下篇将介绍数据库functio的text函数名词

猜你喜欢