主頁 > 後端開發 > Django筆記二十六之資料庫函式之數學公式函式

Django筆記二十六之資料庫函式之數學公式函式

2023-04-21 07:41:12 後端開發

本文首發于公眾號:Hunter后端
原文鏈接:Django筆記二十六之資料庫函式之數學公式函式

這一篇來介紹一下公式函式,主要是數學公式,

其中 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)

以上就是本篇筆記全部內容,下一篇將介紹資料庫函式之文本函式,

如果想獲取更多后端相關文章,可掃碼關注閱讀:
image

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/550644.html

標籤:其他

上一篇:boot-admin整合flowable官方editor-app進行BPMN2.0建模

下一篇:返回列表

標籤雲
其他(157687) Python(38083) JavaScript(25376) Java(17984) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Django筆記二十六之資料庫函式之數學公式函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十六之資料庫函式之數學公式函式 這一篇來介紹一下公式函式,主要是數學公式。 其中 sin,cos 這種大多數情況下用不上的就不介紹了,主要介紹下面幾種: Abs() 絕對值 Ceil() 向上取整 Floor() 向下取整 Mod() ......

    uj5u.com 2023-04-21 07:41:12 more
  • boot-admin整合flowable官方editor-app進行BPMN2.0建模

    正所謂百家爭鳴、見仁見智、眾說紛紜、各有千秋!在作業流bpmn2.0可視化建模工具實作的細分領域,網上撲面而來的是 bpmn.js 這個渲染工具包和web建模器,而筆者卻認為使用flowable官方開源 editor-app 才是王道。 Flowable 開源版本中的 web 版流程設計器edito ......

    uj5u.com 2023-04-21 07:41:02 more
  • Junit啟動測驗mybatis xml檔案BindingException: Invalid bound

    背景:1、正常啟動,xml檔案放在java目錄和resource目錄下均正常 2、junit啟動,xml檔案放在resource目錄下正常,放在java目錄下報BindingException錯誤 mapperlocation系結地址為:"classpath:com/a/b/**/*.xml" 原因 ......

    uj5u.com 2023-04-21 07:40:55 more
  • 深入理解Java泛型、協變逆變、泛型通配符、自限定

    禁止轉載 重寫了之前博客寫的泛型相關內容,全部整合到這一篇文章里了,把坑都填了,后續不再糾結這些問題了。本文深度總結了函式式思想、泛型對在Java中的應用,解答了許多比較難的問題。 純函式 協變 逆變 泛型通配符 PECS法則 自限定 Part 1: 協變與逆變 Java8 引入了函式式介面,從此方 ......

    uj5u.com 2023-04-21 07:40:51 more
  • PHP 教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 PHP開發入門教程 - 一個簡單而簡短的PHP教程和所有內置PHP函式的完整參考手冊。本教程是為初學者和高級開發人員設計的。您將了解PHP內置函式,預定義變數示例,面向物件的PHP,數字,標量,陣列,散列檔案I / O,IF,ELSEIF,執行,回圈,運算子,正則運算式,GET,POST, ......

    uj5u.com 2023-04-21 07:40:46 more
  • java -- 函式式編程

    函式式編程 面向物件過分強調“必須通過物件的形式來做事情”,而函式式思想則盡量忽略面向物件的復雜語法——強調做什么,而不是怎么做。 有時只是為了做某事情而不得不創建一個物件,而傳遞一段代碼才是我們真正的目的。 Lambda Lambda是一個匿名函式,可以理解為一段可以傳遞的代碼。 當需要啟動一個線 ......

    uj5u.com 2023-04-21 07:40:40 more
  • UML類圖

    UML類圖介紹 概念 UML中的類圖(Class Diagram)用于表示類、介面、實體等之間相互的靜態關系。雖然名字叫作類圖,但是圖中并不僅僅只有類。 類結構 繼承 該圖展示了Parentclass和Childclass兩個類之間的關系,其中的空心箭頭表明了兩者之間的層次關系。箭頭由子類指向父類, ......

    uj5u.com 2023-04-21 07:40:27 more
  • 關于Java中物件的向上轉型和向下轉型

    什么是多型? 同一個類呼叫同一個方法會產生不同的影響/結果 這就是多型 public class Pet{ public void eat(){ System.out.println("Pet eat...") } } class Dog extends Pet{ public void eat() ......

    uj5u.com 2023-04-21 07:40:19 more
  • Flask 背景關系是什么 ?

    哈嘍大家好,我是咸魚。今天我們來聊聊什么是 Flask 背景關系 咸魚在剛接觸到這個概念的時候腦子里蹦出的第一個詞是 CPU 背景關系 今天咸魚希望通過這篇文章,讓大家能夠對 Flask 背景關系設計的初衷以及應用有一個基本的了解 Flask 背景關系 我們在使用 Flask 開發 web 程式的時候,通常 ......

    uj5u.com 2023-04-21 07:40:08 more
  • 【0基礎學爬蟲】爬蟲基礎之自動化工具 Selenium 的使用

    大資料時代,各行各業對資料采集的需求日益增多,網路爬蟲的運用也更為廣泛,越來越多的人開始學習網路爬蟲這項技術,K哥爬蟲此前已經推出不少爬蟲進階、逆向相關文章,為實作從易到難全方位覆寫,特設【0基礎學爬蟲】專欄,幫助小白快速入門爬蟲,本期為自動化工具 Selenium 的使用。 概述 目前,很多網站都 ......

    uj5u.com 2023-04-21 07:39:47 more