zoukankan      html  css  js  c++  java
  • Python学习第130天(Django中ORM一对多的增删改查)

    今天回来是早的,但是因为部分原因,差不多9点半才开始看,内容勉强看完,暂时先进行总结一下,实战训练放在明天,同时完成后面的学习。

      主要是针对一对多的增删改查,大致记录了一些关键方法和语句。

      核心语句:publish  =   models.ForeignKey(“Publish”)

      重点关注两点:外键是谁,关联的是哪张表格

    你设置的这个名字publish会在表格创建的时候自动得到新名字publish_id

    下面是一些具体的增删改查方法

      

    一、添加记录
      #publish_id=2
      Book.objects.create(name="linux运维",price=77,pub_date="2017-12-12",publish_id=2)

      #publish=object
      Book.objects.create(name="GO",price=23,pub_date="2017-05-12",publish=publish_obj)

    二、查询记录(通过对象)

      正向查询:
        book_obj=Book.objects.get(name="python")
        pub_obj=book_obj.publish----》书籍对象对应的出版社对象
        pub_obj.name
      反向查询:
        pub_obj = Publish.objects.filter(name="人民出版社")[0]
        pub_obj.book_set.all().values("name","price")

      查询记录(filter values 双下划线__)

        人民出版社出版过的书籍与价格
        ret=Book.objects.filter(publish__name="人民出版社").values("name","price")

      python这本书出版社的名字
        ret2=Publish.objects.filter(book__name="python").values("name")

      python这本书出版社的名字
        ret3=Book.objects.filter(name="python").values("publish__name")

      北京的出版社出版书的名字
        ret4=Book.objects.filter(publish__city="北京").values("name")

      2017年上半年出版过书的出版社的名字
        ret5=Book.objects.filter(pub_date__lt="2017-07-01",pub_date__gt="2017-01-01").values("publish__name")

    暂时就这些,明天抓紧点时间。

  • 相关阅读:
    八大排序
    链表的合并
    记录B站yxc的背包九讲相关代码
    C++中多态实现
    YOLOV4所用到的一些tricks
    C++中的string 和 stringstream 的知识
    博客园中插入视频
    博客园中插入网页
    面试前必须要知道的【可重入锁 自旋锁】
    面试前必须要知道的【乐观锁 悲观锁】
  • 原文地址:https://www.cnblogs.com/xiaoyaotx/p/13296555.html
Copyright © 2011-2022 走看看