• Django(ORM查询联系题)


    day70

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

     1 import os
     2 import sys
     3 if __name__ == '__main__':
     4     # 加载Django项目的配置信息  这一句就在manage.py文件中
     5     os.environ.setdefault("DJANGO_SETTINGS_MODULE",
     6                           "ormday70.settings")
     7     # 导入Django,并启动Django项目
     8     import django
     9     django.setup()
    10     from app01 import models
    11 
    12     # 查找所有书名里包含花的书
    13     ret = models.Book.objects.filter(title__contains="")
    14     print(ret)
    15     # 查找所有出版日期是2018年的书
    16     ret = models.Book.objects.filter(publish_date__year=2019)
    17     print(ret)
    18     # 查找价格大于40元的书
    19     ret = models.Book.objects.filter(price__gt=40)
    20     print(ret)
    21     # 找到在沙河的出版社
    22     ret = models.Publisher.objects.filter(city="下沙")
    23     print(ret)
    24 
    25     # distinct
    26     # 查所有书关联的出版社
    27     ret = models.Book.objects.all().values_list("publisher__name")
    28     print("每本书的出版社分别是:", ret)
    29     print("去重:", ret.distinct())  # 对QuerySet去重
    30 
    31     # 将所有的书按照价格倒叙排序
    32     ret = models.Book.objects.all().order_by("price").reverse()
    33     print(ret)
    34     # 支持负号表示倒序
    35     ret = models.Book.objects.all().order_by("-price")
    36     print(ret)
    37 
    38     # 查询书名是繁花的书的出版社的city               #跨表到publisher
    39     ret = models.Book.objects.filter(title="繁花").values("publisher__city")
    40     print(ret)
    41 
    42     # 查询书名是沙河异闻录的书的作者的爱好(夸两张表)         #跨到Author再到detail字段
    43     ret = models.Book.objects.filter(title="繁花").values("authors__detail__hobby")
    44     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
  • 相关阅读:
    黑马程序员java笔记之五泛型
    黑马程序员java笔记之六网络编程
    黑马程序员java笔记之四IO流
    黑马程序员java笔记之九交通灯信号管理系统
    黑马程序员java笔记之一Map集合
    黑马程序员java笔记之十银行管理系统
    Create a secure MapGuide Site创建安全的MapGuide站点
    SQL Server 2008 and Visual Studio 2008 Service Pack 1 Available for Download
    VS2008不著名的bug
    varchar(MAX)SQL2005的增强特性
  • 原文地址:https://www.cnblogs.com/112358nizhipeng/p/10491050.html
Copyright © 2020-2023  润新知