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")

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

  • 相关阅读:
    最近学习的 Node.js 之 http
    最近学习的 Node.js 基础:安装、环境配置、forever
    关于MySQL5.7 几天的总结(简单分区 & json类型)
    不会点git真不行啊.
    python爬虫基础_scrapy
    python爬虫基础_webwechat
    python爬虫基础_requests和bs4
    python之django母板页面
    python之django基础
    python网络之web框架
  • 原文地址:https://www.cnblogs.com/xiaoyaotx/p/13296555.html
Copyright © 2011-2022 走看看