Django之ORM增刪改查
1.資料庫的配置:
django預設支援sqlite,mysql ,oracle,postgresql資料庫。
<1>sqlite
django預設使用sqlite的資料庫,預設自帶sqlite的資料庫驅動,引擎名稱:django.db.backends.sqlite3
<2>mysql
引擎名稱:django.db.backends.mysql
2.mysql驅動程式
· MySQLdb(mysql python)
·mysqlclient
·MySQL
·PyMySQL(純python的mysql驅動程式)
3. 在django的專案中會預設使用sqlite資料庫,在setting裡有如下配置:
4.在django的專案中使用mysql資料庫,在setting裡有如下配置:
5.model中操作資料庫的語法:
<1>建立類繼承models.Model:
1.Book:表的名稱
2.price:表中欄位的名稱
3.CharField(max_length=1000):建立欄位的格式,字串格式,長度最大1000
4.在命令列輸入python manage.py makemigrations 建立表單
5.在命令列輸入python manage.py migrate
注意:如果報no module named MySQLdb,需在專案__init__下加入下邊兩條
import pymysql
py.mysql.install_as_MySQLdb()
6.ORM對單表的增刪改操作:
<1>資料的新增:
第一種新增資料如下
1.表的名稱
2.在表中新增的鍵值對
3.資料的儲存
第二種新增資料如下:
<2>資料的更改:
第一種修改資料如下:
1.filter 查詢方法
2.通過欄位查詢到該資料
3.更改欄位的新值
第二種修改資料如下:
注意:推薦第一種方法,且第一種方法filter效率高(可新增多條件篩選) filter可以取多條記錄
增加資料庫操作日誌在setting中加入如下內容:
<3>資料的刪除:
1.Book:表的名稱
2.name=‘xiaoming’:欄位的名稱
3.delete():刪除方法
<4>資料的查詢:
1.查詢Author中的所有資料
2.返回的是一個物件列表
3.遍歷物件獲取裡邊的值如下:
1.返回的物件列表
2.每個物件的鍵(資料庫中的欄位名)
4.用切片限制資料的數量:
1.顯示前三條資料
如下為查詢的api:
get() first() last() 取到的是一個例項物件而不是一個Queryset的集合物件
5注意去重:需要用values篩選
6.模糊查詢api: