Django(part30)--原生的數據庫操作方法

學習筆記,僅供參考



原生的數據庫操作方法


使用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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章