python123测验9程序题答案_Django ORM 练习题及答案_python_脚本之家

1.modles中表结构

#出版社

class Publisher(models.Model):

name = models.CharField(max_length=32)

city = models.CharField(max_length=32)

def __str__(self):

return "".format(self.id, self.name)

#书籍

class Book(models.Model):

title = models.CharField(max_length=32)

publish_date = models.DateField(auto_now_add=True)

price = models.DecimalField(max_digits=5,decimal_places=2)

memo = models.TextField(null=True)

#创建外键,关联Publisher

Publisher = models.ForeignKey(to='Publisher')

def __str__(self):

return "".format(self.id, self.title

#作者

class Author(models.Model):

name = models.CharField(max_length =32)

age = models.IntegerField()

phone = models.CharField(max_length=11)

#创建多对多关联

books = models.ManyToManyField(to='Book')

def __str__(self):

return "".format(self.id, self.name)

2.题目

"""

查找所有书名里包含金老板的书

查找出版日期是2018年的书

查找出版日期是2017年的书名

查找价格大于10元的书

查找价格大于10元的书名和价格

查找memo字段是空的书

查找在北京的出版社

查找名字以沙河开头的出版社

查找“沙河出版社”出版的所有书籍

查找每个出版社出版价格最高的书籍价格

查找每个出版社的名字以及出的书籍数量

查找作者名字里面带“小”字的作者

查找年龄大于30岁的作者

查找手机号是155开头的作者

查找手机号是155开头的作者的姓名和年龄

查找每个作者写的价格最高的书籍价格

查找每个作者的姓名以及出的书籍数量

查找书名是“跟金老板学开车”的书的出版社

查找书名是“跟金老板学开车”的书的出版社所在的城市

查找书名是“跟金老板学开车”的书的出版社的名称

查找书名是“跟金老板学开车”的书的出版社出版的其他书籍的名字和价格

查找书名是“跟金老板学开车”的书的所有作者

查找书名是“跟金老板学开车”的书的作者的年龄

查找书名是“跟金老板学开车”的书的作者的手机号码

查找书名是“跟金老板学开车”的书的作者们的姓名以及出版的所有书籍名称和价钱

"""

题目

3.测试数据

-- ----------------------------

-- Records of app01_author

-- ----------------------------

INSERT INTO `app01_author` VALUES ('1', '金老板', '18', '15512351234');

INSERT INTO `app01_author` VALUES ('2', '小哪吒', '20', '15312341234');

INSERT INTO `app01_author` VALUES ('3', 'Alex', '73', '15512341234');

-- ----------------------------

-- Records of app01_publisher

-- ----------------------------

INSERT INTO `app01_publisher` VALUES ('1', '沙河出版社', '北京');

INSERT INTO `app01_publisher` VALUES ('2', '西二旗出版社', '北京');

INSERT INTO `app01_publisher` VALUES ('3', '张江出版社', '上海');

INSERT INTO `app01_publisher` VALUES ('4', '沙河出版社', '上海');

-- ----------------------------

-- Records of app01_book

-- ----------------------------

INSERT INTO `app01_book` VALUES ('1', '跟金老板学开车', '2018-08-03', '12.90', null, '1');

INSERT INTO `app01_book` VALUES ('2', '跟金老板学开潜艇', '2017-08-10', '9.99', null, '1');

INSERT INTO `app01_book` VALUES ('3', '跟老男孩学思想', '2018-09-03', '39.99', null, '2');

INSERT INTO `app01_book` VALUES ('4', '跟egon学喊麦', '2018-06-12', '0.99', null, '4');

-- ----------------------------

-- Records of app01_book_author

-- ----------------------------

INSERT INTO `app01_book_author` VALUES ('3', '1', '1');

INSERT INTO `app01_book_author` VALUES ('4', '2', '1');

INSERT INTO `app01_book_author` VALUES ('5', '1', '2');

INSERT INTO `app01_book_author` VALUES ('2', '2', '2');

INSERT INTO `app01_book_author` VALUES ('6', '3', '3');

INSERT INTO `app01_book_author` VALUES ('7', '3', '4');

测试数据

4.答案

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ORMHomework.settings")

import django

django.setup()

from app01 import models

from django.db.models import Max, Min, Sum, Avg, Count

# 查找所有书名里包含金老板的书

ret1= models.Book.objects.filter(title__contains='金老板')

# print (ret1)

#查找出版日期是2018年的书

ret2 = models.Book.objects.filter(publish_date__year=2018)

# print (ret2)

#查找出版日期是2017年的书名

ret3 = models.Book.objects.filter(publish_date__year=2017).values('title')

# print (ret3)

#查找价格大于10元的书

ret4 =models.Book.objects.filter(price__gt=10)

# print(ret4)

#查找价格大于10元的书名和价格

ret5 = models.Book.objects.filter(price__gt=10).values('title','price')

# print(ret5)

# 查找memo字段是空的书

ret6 = models.Book.objects.filter(memo__isnull=True)

# print(ret6)

#-----------------------------------------------------------------------------

# 查找在北京的出版社

ret7 = models.Publisher.objects.filter(city='北京')

# print(ret7)

# 查找名字以沙河开头的出版社

ret8 = models.Publisher.objects.filter(name__startswith='沙河')

# print(ret8)

#查找“沙河出版社”出版的所有书籍

ret9 =models.Book.objects.filter(Publisher__name='沙河出版社')

# print(ret9)

# 查找每个出版社出版价格最高的书籍价格

# ret10 = models.Publisher.objects.all().annotate(max=Max('book__price')).values('name','max')

# ret10 = models.Publisher.objects.annotate(max=Max('book_price')).values()

# for i in ret10 :

# print(i)

# 查找每个出版社的名字以及出的书籍数量

ret11 = models.Publisher.objects.annotate(count=Count('book__title')).values('name','count')

# for i in ret11:

# print(i)

#---------------------------------------------------------------------------------------------------------

#查找作者名字里面带“小”字的作者

ret12 = models.Author.objects.filter(name__contains='小')

# print(ret12)

#查找年龄大于30岁的作者

ret13 = models.Author.objects.filter(age__gt=30)

# print(ret13)

#查找手机号是155开头的作者

ret14 = models.Author.objects.filter(phone__startswith=155)

# print(ret14)

#查找手机号是155开头的作者的姓名和年龄

ret15 = models.Author.objects.filter(phone__startswith=155).values('name','age')

# print(ret15)

#查找每个作者写的价格最高的书籍价格

# ret16 = models.Author.objects.annotate(max=Max('books__price')).values('name','max')

ret16= models.Book.objects.values('author').annotate(max=Max('price')).values('author','max')

# for i in ret16:

# print(i)

#查找每个作者的姓名以及出的书籍数量

# ret17 = models.Author.objects.all().annotate(count=Count('books__title')).values('name','count')

# for i in ret17 :

# print(i)

#-------------------------------------------------------------------------------------------------------

#查找书名是“跟金老板学开车”的书的出版社

ret18 = models.Publisher.objects.filter(book__title='跟金老板学开车')

# print (ret18)

#查找书名是“跟金老板学开车”的书的出版社所在的城市

ret19 = models.Publisher.objects.filter(book__title='跟金老板学开车').values('city')

# print(ret19)

#查找书名是“跟金老板学开车”的书的出版社的名称

ret20 = models.Publisher.objects.filter(book__title='跟金老板学开车').values('name')

# print(ret20)

#查找书名是“跟金老板学开车”的书的出版社出版的其他书籍的名字和价格

pub_obj = models.Publisher.objects.get(book__title='跟金老板学开车')

ret21= pub_obj.book_set.all().exclude(title='跟金老板学开车').values('title','price')

print(ret21)

#查找书名是“跟金老板学开车”的书的所有作者

# ret22 = models.Author.objects.filter(books__title='跟金老板学开车')

# print(ret22)

#查找书名是“跟金老板学开车”的书的作者的年龄

# ret23 = models.Author.objects.filter(books__title='跟金老板学开车').values('name','age')

# print(ret23)

#查找书名是“跟金老板学开车”的书的作者的手机号码

# ret24 = models.Author.objects.filter(books__title='跟金老板学开车').values('name','phone')

# print(ret24)

#查找书名是“跟金老板学开车”的书的作者们的姓名以及出版的所有书籍名称和价钱

# ret25= models.Author.objects.filter(books__title='跟金老板学开车')

# print(ret25)

# for i in ret25:

# print(i.books.all().values('title','price'))

#

# ret = models.Book.objects.aggregate(Max('price'))

# print(ret)

ret25 = models.Author.objects.values('name','books__title','books__price').filter(books__title='跟金老板学开车')

print(ret25)

答案

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java父类shape_为什么该父类无法调用其子类.__ShapeCircle_public_perimeter_getType_shapej__169IT.COM...

子类:public class ShapeCircle extends Shape{protected double r;public ShapeCircle(){setside(0.0);}public ShapeCircle(double r){setside(r);}public void setside(double r){this.rr;}public double perimeter(){return Math.PI*2*r;}public String getType(){return &…

python中双冒号的作用_python中双冒号

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里技术人对外发布原创技术内容的最大平台&…

java电子通讯录毕业设计_(C)JAVA001电子通讯录(带系统托盘)

打开Server Socket,创建一个服务器型套接字和一个普通套接字,服务器型套接字在指定端口为客户端请求的Socket 服务;? 使用ServerSocket类的accept()方法使服务器型套接字处于监听状态并把监听结果返回给普通套接字;? 为该普通套接字创建输入…

python进行数据分析需要安装哪两个库_对Python进行数据分析_关于Package的安装问题...

一、为什么要使用Python进行数据分析?python拥有一个巨大的活跃的科学计算社区,拥有不断改良的库,能够轻松的集成C,C,Fortran代码(Cython项目),可以同时用于研究和原型的构建以及生产系统的构建。二、Python的优势与劣势&#xff…

java orcl自动_Oracle自动生成编号

祝大家新年快乐,有任何问题可与我联系:今天用JAVA向Oracle数据库中插数据时,每次都要去计算ID,觉得好麻烦,于是想到了用数据库自带的ID来做,具体如下:1、首先得创建一序列序列(SEQUENCE)序列是一…

bat批处理执行python_.bat批处理添加Python任务

一、常用命令含义例一、多进程python 任务 -- start 命令echo offstart python C:\Users\ntitled\n\update_restt\test_bat.pypython C:\Users\ntitled\iin\update_restt\test_bat.pypython C:\Users\ntitled\jin\update_restt\test_bat2.pyexit1、它的作用是让执行窗口中不显…

import java.awt.BorderLayout;_Swing-布局管理器之BorderLayout(边界布局)-入门

边界布局管理器(BorderLayout)把容器的的布局分为五个位置:CENTER、EAST、WEST、NORTH、SOUTH。依次对应为:上北(NORTH)、下南(SOUTH)、左西(WEST)、右东(EAST),中(CENTER),如下图所示。特征:l 可以把组件放在这五个位…

一分钟学会python编程_用Python教你一分钟检验出来!不用群发_编程语言_Python课程_Python教程_课课家...

Python大法已经被网友们玩儿的出神入化了, 最近有网友用Python写了一个脚本, 这个脚本能够自动检测你的微信好友中谁把你删除了? 而且不需要群发消息, 整个过程好友们是完全不知情的。使用范围Mac和Linux经过测试, 确认可用, Windows等待大家的测试反馈, 可以在评论中反馈哦~~…

java 建造者实际中的用法_java中j建造者模式详解和使用方法

建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象。该 Builder 类是独立于其他对象的。介绍意图:将一个复杂的…

python垃圾回收机制为什么标记能解决循环引用问题_python 关于循环引用以及标记清除的问题...

1 在循环引用的情况下,引用计数就不好事了,这时候就需要用到标记清除循环引用的危害: 会造成内存溢出,因为循环引用计数不可能为零解决方法:标记清除2 关于标记清除的效率问题(低)引用计数引用一次就加1,值减到0以后就应该被回收,那这里就产生了一个问题cpython的垃圾回收机制不…

jsp测试mysql_Jsp登陆与MySQL对接验证

最近在做一个Web项目,账户登陆验证是Web项目中必不可少的环节,所以需要阶段性的记录,帮助自己更好的掌握其中的知识。Jsp登陆涉及到POST方法参数获取,以及MySQL数据库信息的获取。可能因为自己是新手,刚开始写的项目有…

数据归一化处理方法_科研常用的实验数据分析与处理方法

科研常用的实验数据分析与处理方法对于每个科研工作者而言,对实验数据进行处理是在开始论文写作之前十分常见的工作之一。但是,常见的数据分析方法有哪些呢?常用的数据分析方法有:聚类分析、因子分析、相关分析、对应分析、回归分…

java专业术语 ioc_什么叫IOC(编程术语

IoC就是Inversion of Control,控制反转。在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控制。这称为控制反转。下面我们以几个例子来说明什么是IoC假设我们要设计一个Girl和一个Boy类,其中Girl有kiss方…

python群控模拟安卓系统_手机群控脚本通用版安装包下载-手机群控脚本通用版apk(云控平板)v1.0.01真机模拟版_新绿资源网...

手机群控脚本通用版apk是一款真机模拟云控平板应用,支持工作室批量挂机搬砖、直播刷人气点赞、云手机试玩项目、吸粉营销、智能引流赚钱等功能,无需多部手机,一个APP控制上万部手机,下载安装吧!应用介绍:云…

java jsonobject.parse_JSON.parseObject的几种用法

import com.alibaba.fastjson.JSONObject;一.result格式:{"success":"true";"returnAddress":"123"}JSONObject jsonObjectJSON.parseObject(result); //转换成objectjsonObject.getString("returnAddress") //获取object中…

信息系统项目管理师_信息系统项目管理师通过率是多少?

答:信息系统项目管理师考试每个地区的通过率都是不一样的,一般全国在10%-20%左右,这个20%的通过率是按参考人数作为统计,就是除去了那些报名了但是没去参加考试的考生,如果算上所有报名考生的通过率数据,那…

类型“unknown”上不存在属性“foreach”_JavaScript红宝书第四版精简解析系列--映射Map数据类型...

Map数据类型顾名思义也就是映射类型,包含一个[[Entries]]私有特性我们可以使用一个二维数组作为初始值const map1 new Map([[1, 1],[2, 2],[3, 3],]); console.log("Map数据类型>", map1);当然也可以使用迭代器进行初始化const map2 new Map({[Symbol.iterator]…

java面试笔试题整理(学习java基础理论最好的资料)_2020Java笔试/面试题(持续收集整理更新)...

说明:java本篇用于收集知识点方便随时巩固,持续更新与纠错。数组关于JDK版本,若无特殊说明,默认为JDK 1.8,。缓存关于JVM版本,若无特殊说明,默认为 HotSpot。安全目录数据结构1、Java 基础1.1 Java中的基本…

JAVA服务器没回应_Java如何面对无服务器的挑战?

这是来自jaxcenter组织的一个讨论,谈论了Java在无服务器浪潮冲击下面临的机会和挑战。下面摘录主要部分:Spring推动者Pivotal有一个名为 Riff的函数即服务平台,它是一个开源的、Apache 2许可的、函数即服务平台,基于Kubernetes和刚…

使用系统调用pipe建立一条管道线_使用Unixbench对服务器综合性能打分及测试结果...

Unixbench是一个类unix系统(Unix,BSD,Linux)下的性能测试工具,一个开源工具,被广泛用与测试linux系统主机的性能,简称UB。Unixbench的主要测试项目有:系统调用、读写、进程、图形化测试、2D、3D、管道、运算…