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
模型下的所有資料。
資料過濾:
在查詢資料的時候,有時候需要對一些資料進行過濾。那麼這時候需要呼叫objects
的filter
方法。例項程式碼如下:
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()