ORM映射(對象關係映射)分建立表和操做表兩個部分建立單表建立關聯表(foreignKey) 一對一 一對多(重點) 多對多(重點) 建立表後加str方法把打印的地址轉換成對應字符表的操做(增刪改查):1.增(create,save) from app01.modals import * create方式一:Author.objects.create(name="eric") create方式二:Author.objects.create(*{"name":"eric"}) save方式一:author = Author(name="eric") author.save() save方式二:author=Author() author.name="eric" author.save()2.刪(delete) Book.object.filter(id=1).delete() (3,{'app01.Book_authors':2,'app01.Book':1})3.改(update,save) update直接改:Publisher.objects.filter(id=2).update(name='eric') save至關於從新賦值:author=Author.object.get(id=5) author.name='eric' author.save()4.查(filte,value等) 查詢API:54-02 filter:(**kwargs) :它包含了與所給篩選條件相匹配的對象 all():查詢全部結果 get(**kwargs):返回與所給篩選條件匹配的對象,返回結果有且只有一個,若是符合篩選條件的對象超過一個或者沒有都會 拋出錯誤。 對查詢結果進行處理: values(**kwargs):返回一個ValueQuerySet 一個特殊的QuerySet,運行後獲得的並非一系列model的實例化對象,而 是一個可迭代的字典序列 exclude(**kwargs):它包含了與所給篩選條件不匹配的對象 order_by(*field):對查詢結果排序 reverse():對查詢結果反向排序 distinct():從返回結果中剔除重複記錄 values_list(*field):它與values()很是類似,它返回的是一個元組序列,values返回的是一個字典序列 count():返回數據庫中匹配查詢(QuerySet)的對象數量。 fist():返回第一條記錄 last():返回最後一條記錄 exists():若是QuerySet包含數據就返回True,不然就返回False 惰性機制: 1.可迭代 2.可切片5.重點:如何建立存在一對多或多對多關係一本書的信息呢?(如何處理外鍵關係的字段如一對多的publisher和 多對多的authors) 一對一(OneToOne): 一對多(foreignKey): 插入(1)models.Book.object.create(title="Python",publish_id=2) (2)推薦使用: models.Book.object.create(title="Python",publish=obj) 因爲綁定一對多的字段,好比publlish_id 多對多(經過外鍵和方法自動建立第三張表):model.manytomanyfield() 自動建立第三張表: add()綁定關係 remove()解除關係 ----正向查詢(例子是從2開始創建的正向查詢) book=models.Book.objects.filter(id=2)[0] #獲取id=2時的參數值 authors=models.Author.objects.filter(id__gt=2) #大於2 book.author.add(*authors) book.author.remove(*authors) #移除關係 ----反向查詢 (例子是從3開始到2創建的反向查詢) author=models.Author.objects.filter(id=3)[0] books=models.Book.objects.filter(id__gt=2) author.book_set.add(*books) author.book_set.remove(*books) #移除關係 非自動建立第三張表(手動): 手動建表能夠直接插入數據 聯合惟一:unique_together=['字段','字段'] 控制檯執行數據庫操做: python manage.py makemigrations python manage.py migrate 注:第三張表的刪除會出現級聯刪除狀況,update()方法要用集合對象才能調用 manytomany():經過兩個foreignKey 緩存時用iterator()方法把對象封裝成可迭代對象