Python3學習筆記之十九
1. 什么是orm?
object relation mapping 對象關系映射
一旦確定表關系為一對多:在多的表中添加關聯字段。
一對一:可以在任意一張表添加關聯字段。
多對多:創建第三張表,主鍵id,兩個關聯字段,關聯另外兩張表的主鍵。
添加記錄:
# 方式1: #obj=Book.objects.create(title="python",publishDate="2012-12-12",price=100) 注意:Book.objects.create()的返回值是當前添加的記錄對象 # 方式2: book_obj=Book(title="python2",publishDate="2012-12-12",price=100) book_obj.save()
查詢記錄:
<1> all(): 查詢所有結果(queryset) <2> filter(**kwargs): 它包含了與所給篩選條件相匹配的對象(queryset) <3> get(**kwargs): 返回與所給篩選條件相匹配的對象,返回結果有且只有一個, 如果符合篩選條件的對象超過一個或者沒有都會拋出錯誤。 (model對象) <5> exclude(**kwargs): 它包含了與所給篩選條件不匹配的對象 <4> values(*field): 返回一個ValueQuerySet——一個特殊的QuerySet,運行后得到的并不是一系列 model的實例化對象,而是一個可迭代的字典序列 <9> values_list(*field): 它與values()非常相似,它返回的是一個元組序列,values返回的是一個字典序列 <6> order_by(*field): 對查詢結果排序 <7> reverse(): 對查詢結果反向排序 <8> distinct(): 從返回結果中剔除重復紀錄 <10> count(): 返回數據庫中匹配查詢(QuerySet)的對象數量。 <11> first(): 返回第一條記錄 <12> last(): 返回最后一條記錄 <13> exists(): 如果QuerySet包含數據,就返回True,否則返回False
雙下劃線的查詢:
book_list=Book.objects.filter(price__gt=60)
book_list=Book.objects.filter(price__lt=60)
book_list=Book.objects.filter(title__contains="py")
book_list=Book.objects.filter(title__startswith="python")
book_list=Book.objects.filter(price__in=[60,70,100])
book_list=Book.objects.filter(price__range=[50,99])
刪除記錄,更新記錄
刪除:
Book.objects.filter().delete() # 默認級聯刪除
更新:
Book.objects.filter().update(price=50,.....)
2. 跨表操作:
一往無前虎山行,撥開云霧見光明

浙公網安備 33010602011771號