1. 程式人生 > >Django之ORM增刪改查

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: