Frank_obj = models.Student(name ="海東",course="python",birth="2000-9-9",fenshu=80) Frank_obj.save()
單表增長 直接帶值便可python
models.Student.objects.create(name ="海燕",course="python",birth="1995-5-9",fenshu=88)
含有一對多,一對一字段的添加要傳入對應對象django
ps:create 方法的返回值爲被建立的對象 app
pub_obj = models.Publish.objects.filter(name="人民出版社")[0] print(pub_obj) models.Book.objects.create(title = "簡愛",publishDdata="2000-6-6",price="222",publish=pub_obj)
含有一對多,一對一字段,在知道關聯字段的值前提下也能夠直接帶值性能
models.Book.objects.create(title="追風箏的人",publishDdata="2015-5-8",price="111",publish_id=1)
含有 多對多 字段時,依舊是要傳入對象,用 add 添加綁定關係
spa
# 先建立一本書: pub_obj=models.Publish.objects.filter(name="萬能出版社").first() book_obj = models.Book.objects.create(title="醉玲瓏",publishDdata="2015-4-10",price="222",publish=pub_obj)
# #經過做者的名字django默認找到id haiyan_obj = models.Author.objects.filter(name="haiyan")[0] egon_obj = models.Author.objects.filter(name="egon")[0] xiaoxiao_obj = models.Author.objects.filter(name="xiaoxiao")[0]
# 綁定多對多的關係、 book_obj.authorlist.add(haiyan_obj, egon_obj, xiaoxiao_obj)
含有 多對多 字段,add 支持傳入序列而後打散的方式綁定code
pub_obj = models.Publish.objects.filter(name="萬能出版社").first() book_obj = models.Book.objects.create(title="醉玲瓏", publishDdata="2015-4-10", price="222", publish=pub_obj) authers = models.Author.objects.all()
# 綁定多對多關係 book_obj.authorlist.add(*authers)
有的話更新,沒有的話就建立對象
UserToken.objects.update_or_create(user=user_obj,defaults={"token":token})
Django model中數據批量導入blog
常規方法,影響性能token
for i in resultlist: p = Account(name=i) p.save()
批量方法,更加方便rem
querysetlist=[] for i in resultlist: querysetlist.append(Account(name=i)) Account.objects.bulk_create(querysetlist)
對象直接 對象.屬性 賦值修改,修改後須要 save()
book_obj = models.Book.objects.first() book_obj.title = "lalal" book_obj.save()
queryset 對象使用 update(屬性="值")方法更改,不須要 save()
ps:update 返回值爲受影響的行數
book_obj = models.Book.objects.filter(id=1) book_obj.update(title="keke") print(book_obj.values("title")[0]) # {'title': 'keke'}
book_obj = models.Book.objects.first()
book_obj.authors.set([2, 3])
刪除方法就是 delete(),它運行時當即刪除對象而不返回任何值。
ps: delete方法刪除是具備關聯性的,默認會所有刪除,能夠在管理字段經過 on_delete 屬性定製
# 刪除數據 models.Student.objects.filter(nid=id).delete()
刪除能夠一次性刪除多條記錄
Entry.objects.filter(pub_date__year=2005).delete()
remove 和 clean 方法僅使用於在多對多字段中解除關係所用
# 解除多對多的關係(remove) book_obj=models.Book.objects.filter(title="醉玲瓏").last() # 找到書對象 authers=models.Author.objects.filter(id__lt=3) # 找到符合條件的做者對象 book_obj.authorlist.remove(*authers) # 由於清除的是多條,得加個*
# 清除關係方法(clear) book_obj= models.Book.objects.filter(title="紅樓夢") for book_obj_item in book_obj: # 把全部紅樓夢的都給清空了 book_obj_item.authorlist.clear()
區別:
remove:得吧要清除的數據篩選出來,而後移除 clear:不用查,直接把數據都清空