Django(ORM查询联系题)
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查询联系题)的更多相关文章
- Django ORM 查询管理器
Django ORM 查询管理器 ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言 ...
- django orm查询和后端缓存的使用
django orm 查询 1 字段后(db_column='age') (null=True)#表示数据库里面的该字段数据可以为空 (blank=True)#表示前端表单提交的时候可以为空 (db_ ...
- Django 源码小剖: Django ORM 查询管理器
ORM 查询管理器 对于 ORM 定义: 对象关系映射, Object Relational Mapping, ORM, 是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换.从 ...
- Django(ORM查询2)
day70 ORM训练专题 :http://www.cnblogs.com/liwenzhou/articles/8337352.html 内容回顾 1. ORM 1. ORM ...
- django -- ORM查询
前戏 在我们之前操作ORM中,你也许是启动Django项目,通过地址访问固定的函数,或者在pycharm里的python console里执行,第一种比较麻烦,而且每次都要启动项目,写路由,第二种虽然 ...
- Python - Django - ORM 查询方法
models.py: from django.db import models class Human(models.Model): id = models.AutoField(primary_key ...
- Django(ORM查询1)
day69 参考:http://www.cnblogs.com/liwenzhou/p/8660826.html 在Python脚本中调用Django环境 orm1.py import os if _ ...
- Django ORM 查询
过滤器 过滤器 作用 all() 查出所有行 filter() 可以添加过滤条件 order_by() 查出所有数据,如果有参数则按参数排序,参数是字符串 ,如:"-username&quo ...
- Django orm查询操作
基于双下划线查询切记!!!!正向查询按字段,反向查询按表名的小写 正向:在Book表里设置关联Obj表,Book------>Obj就是正向查询 反向:在Book表里设置关联Obj表,Obj-- ...
随机推荐
- BP神经网络的参数改进参考?
参考文献:黄巧巧. 基于BP神经网络的手写数字识别系统研究[D].华中师范大学,2009. 47-52 BP神经网络的缺陷:收敛速度慢和局部极小点的问题 使用的改进方案有 1. 学习速率(learn ...
- Navicat for MySQL连接出错:1251
平台:window10 x64+mysql-8.0.15-winx64+navicat_trial_11.1.20.0(PatchNavicat破解) 错误提示:1251-Client does no ...
- Sprign中常用注解
1.@Component 创建类对象,相当于配置<bean/> 2.@Service 与 @Component功能相同 2.1写在ServiceImpl类上 (建议在ServiceImpl ...
- centos7 安装网卡
1.虚拟机测试,先开启命令行 su systemctl set-default multi-user.target reboot 2.编辑网卡 虚拟机网络设置成桥接模式 vi /etc/sysconf ...
- 2019.01.22 poj2926 Requirements(状态压缩)
传送门 题意:给一堆五维的点,求最远点对. 思路:跟CF1093G差不多 考虑把正负号状压成一个323232以内的数,然后对于每一类分别求最大最小值再做差更新答案即可. 代码: #include< ...
- 2019.01.21 bzoj1758: [Wc2010]重建计划(01分数规划+长链剖分+线段树)
传送门 长链剖分好题. 题意简述:给一棵树,问边数在[L,R][L,R][L,R]之间的路径权值和与边数之比的最大值. 思路: 用脚指头想都知道要01分数规划. 考虑怎么checkcheckcheck ...
- c#多线程编程实战(原书第二版)文摘
Thread t = new Thread(PrintNumbersWithDelay); t.Start(); t.Join(); 但我们在主程序中调用了t.Join方法,该方法允许我们等待直到线程 ...
- vue 开发系列(二) vue ajax 拦截
概要说明 在开发的过程中,我们需要通过AJAX请求,访问后台获取数据,这个获取数据的时候,当然需要后台需要时登录状态才能访问数据,当没有登录的情况,这个时候我们需要跳转到登录界面进行登录. 如果每次请 ...
- java socket之上传文件
一.功能介绍 该功能主要实现,将客户端的:F:/work/socketSample/filetemp/client/test_client.txt上传到服务端F:/work/socketSample/ ...
- 关于preg_match() / preg_replace()函数的一点小说明
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $ ...