python-queryset特点
表中数据:

我们需要在app中的tests.py中加入一下几行代码,才能在中间写orm语句:
import os
import sys
def main():
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'newproject.settings')
import django
django.setup()
... '''写orm语句,可以直接右键运行'''
main()
不做任何操作的数据:
res = models.Book.objects.all()
print(res) # <QuerySet [<Book: Book object (1)>, <Book: Book object (2)>, <Book: Book object (3)>, <Book: Book object (4)>, <Book: Book object (5)>]>
特点1:支持索引(不支持负索引):
res = models.Book.objects.all()
print(res[0:2]) # <QuerySet [<Book: Book object (1)>, <Book: Book object (2)>]>
特点2:可迭代:
res = models.Book.objects.all()
for i in res:
print(i.name)
'''
红楼梦 西游记 三国演义 水浒传 骆驼祥子
'''
特点3:查询结果是一个queryset,如果我们不对其进行打印和迭代操作,它就不会访问数据库。直到打印结果或者迭代的时候才会。所以只要我们查询结果是queryset时,可能不会查询到最新数据,可以尝试将all()去掉。
res = models.Book.objects.all() # 如果只有这一句,不会查询数据库
print(res) # 打印或者迭代才会走数据库
for i in res: # # 打印或者迭代才会走数据库
print(i.name)

浙公网安备 33010602011771号