所有的軟件開發過程中,都會涉及到對象和關系型數據庫,在用戶層面和業務邏輯層面,程序員編寫代碼都是面向對象的,當我們對象的信息發生變化的時候,都需要將對應的信息,傳到關系型數據庫中.而在此之前,需要我們編寫對應的SQL語句來創建數據表,
(例如: 創建一個auth_user表,需要定義好每一個字段,給字段設置好對應類型,屬性 ,並且給數據表設置主鍵或唯一鍵.然后定義好表的存儲引擎 ,字符編碼)
然后在業務邏輯中,會有很多SQL語句,對表進行增刪改查操作
然后在業務邏輯中,會有很多SQL語句,對表進行增刪改查操作,
舉例子; 通過POST請求提交商品評論信息
python的一大設計思想-_一切事務皆對象
能不能將對數據庫的操作,也通過面向對象的方式來實現呢???
--因此就有了 ORM
什么是ORM?
將我們的對象,自動XX化到關系型數據庫中,相當於充當業務邏輯層和數據庫層的橋梁
那么,在Django中,我們應該如何開發模型類呢?
這就是 Models.py文件的作用!
-Django中,每建一個應用的時候,都會在應用的文件夾下,
自動生成一個 models.py文件,這里就是編寫模型類的地方
模型類的優勢與劣勢:
優勢--
開發人員能夠專注於業務邏輯的處理,提高開發效率,
以后就不需要在業務邏輯代碼中編寫原生的SQL語句了,通過操作對象的方式,就能夠操作數據庫!
劣勢--
一定程度上犧牲程序的執行效率,
ORM寫的久了,可能會忘了SQL語句
項目中如何取舍? --
復雜的SQL語句,或者數據庫層面的功能--使用原生SQL更加方便
提升開發效率 --使用ORM
例如-
在Flask中使用 Sqlalchemy 就像在Django中使用ORM一樣方便,執行效率只比原生SQL慢了5%,相對於提升的開發效率,這點性能損耗是可以接受的!