day70

练习题:http://www.cnblogs.com/liwenzhou/articles/8337352.html

 import os
import sys
if __name__ == '__main__':
# 加载Django项目的配置信息 这一句就在manage.py文件中
os.environ.setdefault("DJANGO_SETTINGS_MODULE",
"ormday70.settings")
# 导入Django,并启动Django项目
import django
django.setup()
from app01 import models # 查找所有书名里包含花的书
ret = models.Book.objects.filter(title__contains="花")
print(ret)
# 查找所有出版日期是2018年的书
ret = models.Book.objects.filter(publish_date__year=2019)
print(ret)
# 查找价格大于40元的书
ret = models.Book.objects.filter(price__gt=40)
print(ret)
# 找到在沙河的出版社
ret = models.Publisher.objects.filter(city="下沙")
print(ret) # distinct
# 查所有书关联的出版社
ret = models.Book.objects.all().values_list("publisher__name")
print("每本书的出版社分别是:", ret)
print("去重:", ret.distinct()) # 对QuerySet去重 # 将所有的书按照价格倒叙排序
ret = models.Book.objects.all().order_by("price").reverse()
print(ret)
# 支持负号表示倒序
ret = models.Book.objects.all().order_by("-price")
print(ret) # 查询书名是繁花的书的出版社的city #跨表到publisher
ret = models.Book.objects.filter(title="繁花").values("publisher__city")
print(ret) # 查询书名是沙河异闻录的书的作者的爱好(夸两张表) #跨到Author再到detail字段
ret = models.Book.objects.filter(title="繁花").values("authors__detail__hobby")
print(ret)

练习:

结果:

<QuerySet [<Book: 繁花>]>
<QuerySet []>
<QuerySet [<Book: 繁花>, <Book: linux>, <Book: Python>]>
<QuerySet [<Publisher: 下沙出版社>]>
每本书的出版社分别是: <QuerySet [('下沙出版社',), ('下沙出版社',), ('马涧出版社',), ('兰溪出版社',)]>
去重: <QuerySet [('下沙出版社',), ('马涧出版社',), ('兰溪出版社',)]>
<QuerySet [<Book: Python>, <Book: 繁花>, <Book: linux>, <Book: C++>]>
<QuerySet [<Book: Python>, <Book: 繁花>, <Book: linux>, <Book: C++>]>
<QuerySet [{'publisher__city': '下沙'}]>
<QuerySet [{'authors__detail__hobby': '台球'}, {'authors__detail__hobby': '篮球'}]> Process finished with exit code 0

Django(ORM查询联系题)的更多相关文章

  1. Django ORM 查询管理器

    Django ORM 查询管理器 ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言 ...

  2. django orm查询和后端缓存的使用

    django orm 查询 1 字段后(db_column='age') (null=True)#表示数据库里面的该字段数据可以为空 (blank=True)#表示前端表单提交的时候可以为空 (db_ ...

  3. Django 源码小剖: Django ORM 查询管理器

    ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从 ...

  4. Django(ORM查询2)

    day70 ORM训练专题 :http://www.cnblogs.com/liwenzhou/articles/8337352.html 内容回顾     1. ORM         1. ORM ...

  5. django -- ORM查询

    前戏 在我们之前操作ORM中,你也许是启动Django项目,通过地址访问固定的函数,或者在pycharm里的python console里执行,第一种比较麻烦,而且每次都要启动项目,写路由,第二种虽然 ...

  6. Python - Django - ORM 查询方法

    models.py: from django.db import models class Human(models.Model): id = models.AutoField(primary_key ...

  7. Django(ORM查询1)

    day69 参考:http://www.cnblogs.com/liwenzhou/p/8660826.html 在Python脚本中调用Django环境 orm1.py import os if _ ...

  8. Django ORM 查询

    过滤器 过滤器 作用 all() 查出所有行 filter() 可以添加过滤条件 order_by() 查出所有数据,如果有参数则按参数排序,参数是字符串 ,如:"-username&quo ...

  9. Django orm查询操作

    基于双下划线查询切记!!!!正向查询按字段,反向查询按表名的小写 正向:在Book表里设置关联Obj表,Book------>Obj就是正向查询 反向:在Book表里设置关联Obj表,Obj-- ...

随机推荐

  1. 树状数组训练题2:SuperBrother打鼹鼠(vijos1512)

    先给题目链接:打鼹鼠 这道题怎么写? 很明显是树状数组. 而且,很明显是二维树状数组. 如果你没学过二维的树状数组,那么戳开这里:二维树状数组 看完以后,你就会知道怎么做了. 没有什么好解释的,几乎就 ...

  2. linux_开启mysql服务

    想要连接mysql的时候必须先开启mysql的服务 service mysqld start mysql -u root -p 输入密码

  3. centos7 hbase 搭建笔记

    1.require:java环境,本地可用的hadoop 2.拷贝hbase文件(hive-1.2.6) 3.设置环境变量 export HBASE_HOME=/data/spark/bin/hbas ...

  4. 2018.11.30 spoj220 Relevant Phrases of Annihilation(后缀数组+二分答案)

    传送门 代码: 先用特殊字符把所有字符串连接在一起. 然后二分答案将sasasa数组分组. 讨论是否存在一个组满足组内对于每一个字符串都存在两段不相交字串满足条件. #include<bits/ ...

  5. Apache和nginx 域名配置

    apache配置 一.hosts配置: 1.用编辑器打开hosts文件,位置:C:\Windows\System32\drivers\etc目录下 2.在hosts文件里添加自己的域名配置,配置规则如 ...

  6. xml 转 数组

    function xml_to_array($xml){ if(!$xml){ return false; } //将XML转为array //禁止引用外部xml实体 libxml_disable_e ...

  7. jq无法获取a标签动态id

    起初a标签是这样写的<a href="javascript:void(0)"  id="${menu.id}" value="${menu.na ...

  8. Ubuntu 16.04 搭建LAMP服务器环境流程

    http://www.linuxidc.com/Linux/2016-09/135629.htm [安装mysql时 只需安装 mysql-server无需安装mysql-client] mysql ...

  9. s4-3 CSMA

    载波侦听多路访问协议  CSMA:Carrier Sense Multiple Access 特点:"先听后发" 改进ALOHA协议的侦听/发送策略  分类 非持续式 持 ...

  10. IntelliJ IDEA 2017版 spring-boot 2.03 去除控制台logo;去除springboot 图标;去除springboot 图

    1.控制台出现logo图标 2.如果不喜欢,如何去除这个logo 在其Application中进行设置 package com.springboot.logo; import org.springfr ...