学习笔记,仅供参考,有错必纠
参考自:Django打造大型企业官网–Huang Y;官方文档
生成一个QuerySet
对象并不会马上转换为SQL
语句,比如我们获取Book
表下所有的图书:
books = Book.objects.all()
print(connection.queries)
打印connection.quries
时将返回一个空的列表,说明上面的QuerySet
并没有真正的执行。
在以下情况下QuerySet
会被转换为SQL
语句执行:
迭代:在遍历QuerySet
对象的时候,会首先先执行这个SQL
语句,然后再把这个结果返回进行迭代。比如以下代码就会转换为SQL
语句:
for book in Book.objects.all():
print(book)
使用步长做切片操作:QuerySet
可以类似于列表一样做切片操作。做切片操作本身不会执行SQL
语句,但是如果如果在做切片操作的时候提供了步长,那么就会立马执行SQL
语句。需要注意的是,做切片后不能再执行filter
方法,否则会报错。
调用len
函数:调用len
函数用来获取QuerySet
中总共有多少条数据也会执行SQL
语句。
调用list
函数:调用list
函数用来将一个QuerySet
对象转换为list
对象也会立马执行SQL
语句。
判断:如果对某个QuerySet
进行判断,也会立马执行SQL
语句。
本文地址:https://blog.csdn.net/m0_37422217/article/details/107438568
如对本文有疑问, 点击进行留言回复!!
温习Android基础知识——《第一行代码(第三版)》读书笔记 Chapter 7 数据持久化
Django从理论到实战(part36)--QuerySet转换SQL
sqlserver:数据库权限设计概念及如何配置一个只读账户
网友评论