1. 程式人生 > 其它 >Pycharm開發Django專案模型的操作

Pycharm開發Django專案模型的操作

模型的操作:

ORM框架中,所有模型相關的操作,比如新增/刪除等。其實都是對映到資料庫中一條資料的操作。因此模型操作也就是資料庫表中資料的操作。

新增一個模型到資料庫中:

新增模型到資料庫中。首先需要建立一個模型。建立模型的方式很簡單,就跟建立普通的Python物件是一摸一樣的。在建立完模型之後,需要呼叫模型的save方法,這樣Django會自動的將這個模型轉換成sql語句,然後儲存到資料庫中。示例程式碼如下:

class Book(models.Model):
    name = models.CharField(max_length=20,null=False)
    desc = models.CharField(max_length=100,name='description',db_column="description1")
    pub_date = models.DateTimeField(auto_now_add=True)

book = Book(name='三國演義',desc='三國英雄!')
book.save()

查詢資料:

查詢資料都是通過模型下的objects物件來實現的。

查詢所有資料:

要查詢Book這個模型對應的表下的所有資料。那麼示例程式碼如下:

books = Book.objects.all()

以上將返回Book模型下的所有資料。

資料過濾:

在查詢資料的時候,有時候需要對一些資料進行過濾。那麼這時候需要呼叫objectsfilter方法。例項程式碼如下:

books = Book.objects.filter(name='三國演義')
> [<Book:三國演義>]

# 多個條件
books = Book.objects.filter(name='三國演義',desc='test')

呼叫filter,會將所有滿足條件的模型物件都返回。

獲取單個物件:

使用filter返回的是所有滿足條件的結果集。有時候如果只需要返回第一個滿足條件的物件。那麼可以使用get方法。示例程式碼如下:

book = Book.objects.get(name='三國演義')
> <Book:三國演義>

當然,如果沒有找到滿足條件的物件,那麼就會丟擲一個異常。而filter在沒有找到滿足條件的資料的時候,是返回一個空的列表。

資料排序:

在之前的例子中,資料都是無序的。如果你想在查詢資料的時候使用某個欄位來進行排序,那麼可以使用order_by方法來實現。示例程式碼如下:

books = Book.objects.order_by("pub_date")

以上程式碼在提取所有書籍的資料的時候,將會使用pub_date從小到大進行排序。如果想要進行倒序排序,那麼可以在pub_date前面加一個負號。例項程式碼如下:

books = Book.objects.order_by("-pub_date")

修改資料:

在查詢到資料後,便可以進行修改了。修改的方式非常簡單,只需要將查找出來的物件的某個屬性進行修改,然後再呼叫這個物件的save方法便可以進行修改。示例程式碼如下:

from datetime import datetime
book = Book.objects.get(name='三國演義')
book.pub_date = datetime.now()
book.save()

刪除資料:

在查詢到資料後,便可以進行刪除了。刪除資料非常簡單,只需要呼叫這個物件的delete方法即可。例項程式碼如下:

book = Book.objects.get(name='三國演義')
book.delete()