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
>>>