Django ORM练习题

表结构

复制代码
#
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)
    # 创建外键,关联publish
    publisher = models.ForeignKey(to="Publisher")
    # 创建多对多关联author
    author = models.ManyToManyField(to="Author")

    def __str__(self):
        return "<Book object: {} {}>".format(self.id, self.title)


# 出版社
class Publisher(models.Model):
    name = models.CharField(max_length=32)
    city = models.CharField(max_length=32)

    def __str__(self):
        return "<Publisher object: {} {}>".format(self.id, self.name)


# 作者
class Author(models.Model):
    name = models.CharField(max_length=32)
    age = models.IntegerField()
    phone = models.CharField(max_length=11)

    def __str__(self):
        return "<Author object: {} {}>".format(self.id, self.name)
复制代码

练习题

复制代码
"""
1. 查找所有书名里包含金老板的书
2. 查找出版日期是2018年的书
3. 查找出版日期是2017年的书名
4. 查找价格大于10元的书
5. 查找价格大于10元的书名和价格
6. 查找memo字段是空的书

7. 查找在北京的出版社
8. 查找名字以沙河开头的出版社

9. 查找“沙河出版社”出版的所有书籍
10. 查找每个出版社出版价格最高的书籍价格
11. 查找每个出版社的名字以及出的书籍数量

12. 查找作者名字里面带“小”字的作者
13. 查找年龄大于30岁的作者
14. 查找手机号是155开头的作者
15. 查找手机号是155开头的作者的姓名和年龄

16. 查找每个作者写的价格最高的书籍价格
17. 查找每个作者的姓名以及出的书籍数量

18. 查找书名是“跟金老板学开车”的书的出版社
19. 查找书名是“跟金老板学开车”的书的出版社所在的城市
20. 查找书名是“跟金老板学开车”的书的出版社的名称
21. 查找书名是“跟金老板学开车”的书的出版社出版的其他书籍的名字和价格

22. 查找书名是“跟金老板学开车”的书的所有作者
23. 查找书名是“跟金老板学开车”的书的作者的年龄
24. 查找书名是“跟金老板学开车”的书的作者的手机号码
25. 查找书名是“跟金老板学开车”的书的作者们的姓名以及出版的所有书籍名称和价钱

"""
复制代码

测试数据

 

posted @   maple-shaw  阅读(3658)  评论(6编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示