Django新增数据
Django新增數據
方式一
增加是比較簡單的操作,Django的ORM可以使用如下的方式新增一條數據。
from book.models import BookInfo book = BookInfo(name="Django教程",readcount=0,commentcount=0) # 創建BookInfo對象 book.save() # 使用save方法保存到數據庫Django做的比較優雅的事情是:Django的一個model類對應數據庫中一張表,而該類的對象則對應于數據表中的一條數據,這樣的抽象是比較合理的。
注意:
使用save()方法保存新對象的時候,不要指定主鍵的值。因為在你調用 save() 之前,沒有辦法表中的 id 的值應該是多少,因為這個值是由你的數據庫計算出來的,而不是由 Django 計算出來的。save()方法也被用來更新數據,如前所述,如果你在保存新對象的時候指定了主鍵的值,如果這個值在數據庫中已經存在,那么插入操作,就變成了更新操作。方式二
除了上面的方式之外,還可以使用Model.objects的方法來實現新增一條數據。
Django每個非抽象的 Model 類必須有一個 Manager 實例添加到其中。Django 確保在你的模型類中至少指定了一個默認的 Manager。如果你沒有添加自己的 Manager,Django 會添加一個屬性 objects,包含默認的 Manager 實例。如果添加自己的 Manager 實例屬性,則不會出現默認的。
Manager 是一種接口,它賦予了 Django 模型操作數據庫的能力。Django 應用中每個模型擁有至少一個 Manager,就是默認的objects.
以上這些描述來自Django官方文檔。之后再寫一篇文章詳細解釋這些東西,現在只需要知道默認的Manager是objects,它能賦予Django模型操作數據庫的能力。
objects管理器提供了create()方法,可以一步到位直接將數據保存至數據庫。例如:
from book.models import BookInfo BookInfo.objects.create(name="Python教程",readcount=0,commentcount=0)注意:
如果你的新增操作包含了一個你手動設置的主鍵值,而且如果這個值已經存在于數據庫中,那么對 create() 的調用就會以一個 IntegrityError 失敗,因為主鍵必須是唯一的。如果必須使用手動主鍵,那么要做好處理異常處理。和save()一樣,通常情況下,不要去指定主鍵的值。
總結
以上是生活随笔為你收集整理的Django新增数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网络编程传输层——UDP通信
- 下一篇: 突然报错package name doe