11.-ORM-基本操作-建立資料
阿新 • • 發佈:2022-01-12
一、ORM-操作
基本操作包括增刪改查,即(CRUD)操作
CRUD是指在做計算處理時增加(create)、讀取查詢(read)、更新(update)、刪除(delete)
ORM CRUD 核心 - > 模型類管理物件
二、管理器物件
每個繼承自models.Model的模型類,都會有一個objects物件被同樣繼承下來,這個物件叫管理器物件
資料庫的增刪改查可以通過模型的管理器實現
三、建立資料
Django ORM 使用一種直觀的方式把資料庫表中的資料表示成python物件
建立資料中每一條記錄就是建立一個數據物件
方案1.MyModel.objects.create(屬性1=值1,屬性2=值2...) 方案2. 建立MyModel例項物件,並呼叫save進行儲存 obj = MyModel(屬性=值,屬性=值) obj.屬性=值 obj.save()
四、Django Shell
在Django提供了一個互動式的操作專案叫做Django Shell 它能在互動模式用專案工程的程式碼執行相應的操作
利用Django shell 可以代替編寫view的程式碼來直接進行操作
注意:專案程式碼發生變化時,重新進入Django shell
啟動方式: 專案下 python3 manage.py shell
使用方式1
在shell內 匯入需要操作的model from 應用名.models import 模型類名 s = Book.objects.create(title='python') 然後會資料庫插入一條title為python的資料
使用方式2.
在shell內 匯入需要操作的model from 應用名.models import 模型類名 s = Book(title='python') s.title = 'python' s.save() 然後會資料庫插入一條title為python的資料
在views檢視可以用同樣的方式進行資料庫操作
五、查詢簡介
資料庫的查詢需要使用管理器物件進行
通過MyModel.objects管理器方法呼叫查詢方法
只要是模型類,就有objects物件
常用方法:
all() 用法:MyModel.objects.all()
作用:查詢MyModel實體中所有的資料 等同於select * from table;
返回值:QuerySet容器物件內部存放MyModel例項
values('列1','列2'..) 用法:MyModel.objcts.values(..)
作用:查詢部分列的資料並返回 等同於select 列1,列2 from xxx
返回值:QuerySet 返回查詢結果容器,容器記憶體字典,每個字典代表一條資料 格式:{'列1':值1,'列2':值2}
values_list ('列1','列2'..) 用法:MyModel.objects.values_list()
作用:返回元組形式的查詢結果 等同於 select 列1,列2 from xxx
返回值:QuerySet容器物件,內部存放元組 會將查詢出來的資料封裝到元組中,再封裝到查詢集合QuseySet中
order_by() 用法:MyModel.object.order_by('-列','列')
作用:與all()方法不同,它會用sql語句order by子句對查詢結果根據某個欄位選擇性的進行排序
說明:預設是按照升序排序,降序排序需要在列名前面加 ‘-’表示
MyModel.query:可以輸出對應方法對應的sql語句
在模型類中定義__str__方法,可以自定義QuerySet中的輸出格式
def __str__(self):
return f'{self.title}{self.name}'
just do it .