Django:ORM基本操作-CRUD,管理器对象objects,----->查询2(filter,exclude,get,查询谓词)

在这里插入图片描述
https://docs.djangoproject.com/zh-hans/3.2/ref/models/expressions/

在这里插入图片描述
在这里插入图片描述

Microsoft Windows [版本 10.0.19042.928]
(c) Microsoft Corporation。保留所有权利。

C:\Users\520>cd..

C:\Users>cd 520

C:\Users\520>cd mysite

C:\Users\520\mysite>dir
 驱动器 C 中的卷是 Windows-SSD
 卷的序列号是 42D9-2A68

 C:\Users\520\mysite 的目录

2021/05/20  22:47    <DIR>          .
2021/05/20  22:47    <DIR>          ..
2021/06/08  22:28    <DIR>          .idea
2021/05/20  22:47           135,168 db.sqlite3
2021/05/20  22:32               684 manage.py
2021/05/28  23:57    <DIR>          myapp
2021/05/28  23:57    <DIR>          mysite
2021/05/20  22:32    <DIR>          templates
2021/05/20  22:32    <DIR>          venv
               2 个文件        135,852 字节
               7 个目录 425,960,681,472 可用字节

C:\Users\520\mysite>python manage.py shell
Python 3.7.7 (tags/v3.7.7:d7c567b08f, Mar 10 2020, 10:41:24) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from myapp.models import Book
>>> b1 = Book.objects.filter(pub="清华大学出版社")
>>> b1
<QuerySet [<Book: 书名:python_出版社:清华大学出版社_价格:20.00_市场价:25.00>, <Book: 书名:django_出版社:清华大学出版社_价格:70.00_市场价:75.00>, <Book: 书名:html5_出版社:清华大学出版社_价格:90.00_市场价:105.00>]>
>>> for book in b1:
...     print("书名:", book.title)
...
书名: python
书名: django
书名: html5
>>> b2 = Book.objects.filter(pub="清华大学出版社", title="python")
>>> b2
<QuerySet [<Book: 书名:python_出版社:清华大学出版社_价格:20.00_市场价:25.00>]>
>>> print(b2.query)
SELECT `book`.`id`, `book`.`title`, `book`.`pub`, `book`.`price`, `book`.`market_price` FROM `book` WHERE (`book`.`pub` = 清华大学出版社 AND `book`.`title` = python)
>>>

多个条件,则之间是AND关系

在这里插入图片描述
在这里插入图片描述

>>> b1 = Book.objects.get(pub="清华大学出版社")
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\Users\520\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "C:\Users\520\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\query.py", line 442, in get
    num if not limit or num < limit else 'more than %s' % (limit - 1),
myapp.models.Book.MultipleObjectsReturned: get() returned more than one Book -- it returned 3!


>>> b2 = Book.objects.get(pub="中信出版社")
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\Users\520\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "C:\Users\520\AppData\Local\Programs\Python\Python37\lib\site-packages\django\db\models\query.py", line 437, in get
    self.model._meta.object_name
myapp.models.Book.DoesNotExist: Book matching query does not exist.
>>>

>>> b3 = Book.objects.get(id=1)
>>> b3
<Book: 书名:python_出版社:清华大学出版社_价格:20.00_市场价:25.00>
>>>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

>>> b4 = Book.objects.filter(id__gt=3)
>>> b4
<QuerySet [<Book: 书名:linux_出版社:机械工业出版社_价格:80.00_市场价:65.00>, <Book: 书名:html5_出版社:清华大学出版社_价格:90.00_市场价:105.00>]>
>>> print(b4.query)
SELECT `book`.`id`, `book`.`title`, `book`.`pub`, `book`.`price`, `book`.`market_price` FROM `book` WHERE `book`.`id` > 3
>>>

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值