學習筆記,僅供參考
原生的數據庫操作方法
使用raw進行查詢操作
在django中,可以使用模型管理器的raw
方法來執行select語句進行數據查詢
- 用法
Entry.objects.raw('sql語句')
- 返回值
QuerySet 集合對象
- 舉個例子
在Django shell中敲入如下代碼:
books = models.Book.objects.raw('select * from bookstore_book;')
for book in books:
print(book)
輸出:
書名:Djangoweb開發實戰, 出版社:清華大學出版社
書名:python, 出版社:機械工業出版社
書名:R, 出版社:人民郵電出版社
書名:數據處理, 出版社:清華大學出版社
書名:算法, 出版社:人民郵電出版社
書名:小黃, 出版社:黑山羊出版社
使用遊標cursor進行增刪改操作
在DJaogo中使用非查詢語句(UPDATE、DELETE等)進行操作時,必須使用遊標
- 使用步驟
- 導入cursor所在的包
- 創建cursor對象,爲保證在出現異常時能釋放cursor資源,通常使用with語句進行創建操作
- 舉個例子
在Django shell中敲入如下代碼:
from django.db import connection
#將黑山羊出版社的記錄的書目改爲大黃
with connection.cursor() as cur:
cur.execute('update bookstore_book set title="大黃" where pub="黑山羊出版社";')
#刪除id=4的一條記錄
with connection.cursor() as cur:
cur.execute('delete from bookstore_book where id=4;')
查看數據庫:
mysql> select * from bookstore_book;
+----+-------------------+----------------+------------+-------+
| id | title | pub | exfacPrice | price |
+----+-------------------+----------------+------------+-------+
| 1 | Djangoweb開發實戰 | 清華大學出版社 | 35.00 | 40.00 |
| 2 | python | 機械工業出版社 | 35.00 | 40.00 |
| 3 | R | 人民郵電出版社 | 35.00 | 40.00 |
| 5 | 算法 | 人民郵電出版社 | 45.00 | 30.00 |
| 6 | 大黃 | 黑山羊出版社 | 45.00 | 30.00 |
+----+-------------------+----------------+------------+-------+
5 rows in set (0.00 sec)