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. service层代码相互调用, 导致spring循环依赖,设计上的优化

    管理员创建用户需要发送激活邮件, 而发送激活邮件的时候需要判断发件人是不是合法的用户, 因此设计到一个循环依赖的问题 //UserService @Service class UserService{ ...

  2. MySQL参数优化:back_log

    * 修改back_log参数值:由默认的50修改为500.(每个连接256kb, 占用:125M) back_log=500 查看mysql 当前系统默认back_log值,命令: show vari ...

  3. [ExecuteInEditMode]

    ExecuteInEditMode属性的作用是在EditMode下也可以执行脚本.Unity中默认情况下,脚本只有在运行的时候才被执行,加上此属性后,不运行程序,也能执行脚本. 与PlayMode不同 ...

  4. Java的GUI设计

    这里笔者写一些自己做GUI时候的心得,希望可以帮助需要学习的同学,函数的实现和界面设计不在同一个文件中,且涉及参数的传递 一.继承于JFrame   当遇到继承于JFrame的类的时候,可以省去建立对 ...

  5. TP5在lnmp环境中不能重写的问题

    说到坑,这个问题困扰了我一两天时间,本地可以,线上环境检查了好久. 基本检查的地方有几个了,首先就是nginx下面的重写配置,这个大家在网上都能搜到,至于定义的变量和配置路径,修改一下即可. 还有就是 ...

  6. 2018.11.30 bzoj3230: 相似子串(后缀数组)

    传送门 后缀数组入门题. 建立正反两个后缀数组算就行了. 代码: #include<bits/stdc++.h> #define ri register int using namespa ...

  7. Servlet WebSocket的简易聊天室

    添加依赖 <!-- websocket --> <dependency> <groupId>javax.websocket</groupId> < ...

  8. __getitem__()、__setitem__()与__delitem__()

    # 如果想要运用[]取值,可以实现__getitem__() # 想要运用[]设值,可以实现__setitem__() # 若想通过del与[]来删除,可以实现__delitem__() class ...

  9. java常用设计模式三:原型模式

    在说原型模式之前先说一下浅拷贝和深拷贝的概念 一.浅拷贝和深拷贝 1.浅拷贝 在java中,对象创建后需要有一个引用变量来指向该对象实际的地址空间,也就是说引用变量与对象实体是两个不同的数据体.在Ob ...

  10. Java之spilt()函数,trim()函数

    一.单个符号作为分隔符  package com.regix; public class FuncSpilt { public static void main(String[] args) { // ...