Django中ORM對數據庫的增刪改查

Django中ORM對數據庫數據的增刪改查

  • 模板語言html

    • {% for line in press %} {% line.name %} {% endfor %}python

    • {% if 條件 %}{% else %}{% endif %}數據庫

    • {% if publisher == book.publisher %}
         <option selected value="{{ publisher.id }}">{{ publisher.name }}</option>
      {% else %}
         <option value="{{ publisher.id }}">{{ publisher.name }}</option>
      {% endif %}
  • 什麼是ORMdjango

    • ORM(對象關係映射)指用面向對象的方法處理數據庫中的建立表以及數據的增刪改查
  • Django中鏈接數據庫和建立表(見上個筆記)code

  • 單表的增刪改查

  • 建立單表orm

    • 5X27Fe.png
  • htm

    • UserInfo.object.create(name="lin")   
      UserInfo.object.create(**{"name":"lin"})
  • 對象

    • 在HTTP中的URL中添加參數get

    • UserInfo.object.filter(id=1).delete()   #刪除在UserInfo表中篩選出id爲1的對象
    • 在Django中獲取URL中的參數it

      • request.GET    #獲取一個相似於字典
        request.GET.get("id") #取值
  • 改對數據庫進行修改時須要對數據進行保存

    • obj = UserInfo.objects.filter(id=3)[0]
      obj.name = "alex"       #這裏改只是在Python中將數據進行更改
      obj.save()   #將數據庫中的數據進行更改,
      #第二種方法
      UserInfo.objects.filter(id=3).update(name="alex")  #直接設定對應屬性,
    • UserInfo.objects.filter(email=email)    #篩選出知足條件的對象,放在一個相似列表中,
      UserInfo.objects.all()         #查詢全部的結果,放在一個相似列表中
      UserInfo.objects.get(id=1)   #查詢篩選條件匹配的對象,有且只有一個,若是符合條件超過一個或者沒有,就會報錯
    • 查到後經過點「.」取具體的值

    • 5XsZGa.png

    • 5XslHi.png

  • 一對多的增刪改查

    • 注意在Django2.0以上的版本,外鍵須要手動設置級聯操做

      • publisher = models.ForeignKey(to='Publisher', on_delete=models.CASCADE)  # ORM自動剛給外鍵字段加_id
    • 關聯表

    • 5X2gAR.png

      • 須要注意參數(關聯外鍵是,

      • Book.objects.create(title=new_title,publisher=Publisher.objects.get(id=publisher_id))
        Book.objects.create(title=new_title, publisher_id=publisher_id)
      • Book.objects.get(id=id).delete()
    • 改 注意改完須要保存

      • book_obj.name = "新的值"    #book_obj爲對象
        book_obj.publisher_id = "新id"  
        book_obj.save()
  • 多對多查詢

    • 關聯表

      • book = models.ManyTOManyField(to="Book_list")
      • 5X737y.png
    • 相關代碼

      • #author_obj是建立第三張關聯表那個類的一個對象
        author_obj.book.all()   #查詢做者關聯的全部書籍
        author_obj.book.add(id1,id2) #給做者添加關聯的書籍  等同於
        author_obj.book.add(*[id1,id2])
        author_obj.book.set([id1,id2]) #相似爲將之前的刪掉,從新關聯如今的書籍
  • 對html錯誤的提示
    • 5XKjlE.png
    • 5XKOs2.png
相關文章
相關標籤/搜索