1. 程式人生 > >Django 第十課 1.【ORM模型】

Django 第十課 1.【ORM模型】

數據庫引擎 隨著 會有 ppi 我們 忽略 切換 開發 數據

ORM模型介紹

隨著項目的越來越大,采用寫原生SQL的方式在代碼中會出現大量的SQL語句,那麽問題就出現了:

1:SQL語句重復利用率不高,越復雜的SQL語句條件越多,代碼越長。會出現很多相近的SQL語句

2:很多SQL語句是在業務邏輯中拼出來的,如果有數據庫需要更改,就要去修改這些邏輯,這會很容易漏掉對某些SQL語句的修改

3:寫SQL時容易忽略web安全問題,給未來造成隱患。如,SQL註入

ORM, 全稱object relational Mapping ,中文叫做對象關系映射,通過ORM我們可以通過類的方式操作數據庫,而不用再寫原生的SQL語句。通過把表映射成類,把行作為實例,把字段作為屬性,ORM在執行對象操作的時候最終還是會把對應的操作轉換為數據庫原生語句。使用ORM有許多優點:

1:易用性:使用ORM做數據庫的開發可以有效的減少重復SQL語句的概率,寫出的模型也更加直觀,清晰。

2:性能損耗小:ORM轉換成底層數據庫操作指令確實會有一些開銷。但是從實際的情況看,這種損耗很少(不足5%),只要不是對性能有嚴苛的要求,綜合考慮開發效率,代碼的閱讀性,帶來的好處要遠遠大於性能損耗,而且項目越大作用越明顯。

3:設計靈活:可以輕松的寫出復雜的查詢

4:可移植性:Django封裝了底層的數據實現,支持多個關系數據庫引擎,包括流行的MySQL,PostgreSQL和SQLite。可以非常輕松的切換數據庫

技術分享圖片

Django 第十課 1.【ORM模型】