簡單的說,orm是通過使用描述物件和資料庫之間對映的元資料,將程式中的物件自動持久化到關聯式資料庫中。
orm在業務邏輯層和資料庫層之間充當了橋梁的作用。
讓我們從o/r開始。字母o起源於"物件"(object),而r則來自於"關係"(relational)。
幾乎所有的軟體開發過程中都會涉及到物件和關聯式資料庫。在使用者層面和業務邏輯層面,我們是物件導向的。當物件的資訊發生變化的時候,我們就需要把物件的資訊儲存在關聯式資料庫中。
按照之前的方式來進行開發就會出現程式設計師會在自己的業務邏輯**中夾雜很多sql語句用來增加、讀取、修改、刪除相關資料,而這些**通常都是重複的。
orm解決的主要問題是物件和關係的對映。它通常把乙個類和乙個表一一對應,類的每個例項對應表中的一條記錄,類的每個屬性對應表中的每個字段。
orm提供了對資料庫的對映,不用直接編寫sql**,只需像操作物件一樣從資料庫運算元據。
讓軟體開發人員專注於業務邏輯的處理,提高了開發效率。
orm的缺點是會在一定程度上犧牲程式的執行效率。
orm用多了sql語句就不會寫了,關聯式資料庫相關技能退化...
orm只是一種工具,工具確實能解決一些重複,簡單的勞動。這是不可否認的。
但我們不能指望某個工具能一勞永逸地解決所有問題,一些特殊問題還是需要特殊處理的。
但是在整個軟體開發過程中需要特殊處理的情況應該都是很少的,否則所謂的工具也就失去了它存在的意義。
orm並不是python才有的,每種語言都有類似的orm
在django中model是你資料的單
一、明確的資訊**。它包含了你儲存的資料的重要欄位和行為。通常,乙個模型(model)對映到乙個資料庫表
基本情況:
1. 手動建立資料庫
2. 在settings.py裡面配置一下資料庫的連線資訊(告訴django連線哪乙個資料庫)
databases =3. 在和settings.py同目錄下的__init__.py檔案中,告訴django用pymysql代替mysqldb來連線資料庫}
importpymysql
pymysql.install_as_mysqldb()
class5. 執行兩條命令book(models.model):
id = models.autofield(primary_key=true)
title = models.charfield(max_length=32)
1. 在哪兒執行?
在專案的根目錄(有manage.py檔案的那個目錄)
2. 命令
python manage.py migrate --> 將改動翻譯成sql語句,去資料庫中執行
下面這個例子定義了乙個person模型,包含first_name和last_name。
from django.db importfirst_name和last_name是模型的字段。每個欄位被指定為乙個類屬性,每個屬性對映到乙個資料庫列。models
class
person(models.model):
first_name = models.charfield(max_length=30)
last_name = models.charfield(max_length=30)
上面的person模型將會像這樣建立乙個資料庫表:
create一些說明:table
"id" serial
notnull
primary
key,
"first_name"
varchar(30) not
null
, "last_name"
varchar(30) not
null
);
classpress(models.model):
id = models.autofield(primary_key=true)
name = models.charfield(null=false, max_length=20)
class
meta():
db_table = '
press
'
django web開發框架 ORM簡介
這極大的減輕了開發人員的工作量,不需要面對因資料庫變更而導致的無效勞動 django中的模型包含儲存資料的字段和約束,對應著資料庫中唯一的表 建立專案test2 密碼 mysql create databases test2 charset utf8databases 在models.py中定義模型...
RedHat RPM簡介與應用
rpm 是 linux 特有之套件安裝方法,在其他的 unix 系統不能適用。rpm 之優點及限制 優點 提供快速之安裝,減少 編譯安裝之除錯 困擾。限制 因為相關之設定需考量普遍性之問題,常以基本通用之設定安裝,遇 有特殊用途之功能 易出現不足之處。使用建議 初學者方便使用,但建議在較熟悉系統後,...
樹莓派簡介與應用
1 樹莓派是什麼?樹莓派是微型卡片式電腦,體積只有銀行卡大小,可以執行linux系統和windows iot系統,然後可以執行這些系統之上的應用程式,可以應用於嵌入式和物聯網領域,也可以作為小型的伺服器,完成一些特定的功能。2 樹莓派的特點和優勢 與嵌入式微控制器 常見的51微控制器和stm32 相...