Django实战教程第36部分:如何将QuerySet转换为SQL语句?

2026-06-10 22:376阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计446个文字,预计阅读时间需要2分钟。

Django实战教程第36部分:如何将QuerySet转换为SQL语句?

《Django构建大型企业官网——黄Y》;官方文档;QuerySet转换SQL——生成一个QuerySet对象并不会马上转换成SQL语句,例如SELECT * FROM table。

学习笔记,仅供参考,有错必纠
参考自:Django打造大型企业官网–Huang Y;​​​官方文档​​



QuerySet转换SQL



生成一个​​QuerySet​​​对象并不会马上转换为​​SQL​​​语句,比如我们获取​​Book​​表下所有的图书:

books = Book.objects.all()
print(connection.queries)

打印​​connection.quries​​​时将返回一个空的列表,说明上面的​​QuerySet​​并没有真正的执行。

在以下情况下​​QuerySet​​​会被转换为​​SQL​​语句执行:

Django实战教程第36部分:如何将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​​语句。
  • 本文共计446个文字,预计阅读时间需要2分钟。

    Django实战教程第36部分:如何将QuerySet转换为SQL语句?

    《Django构建大型企业官网——黄Y》;官方文档;QuerySet转换SQL——生成一个QuerySet对象并不会马上转换成SQL语句,例如SELECT * FROM table。

    学习笔记,仅供参考,有错必纠
    参考自:Django打造大型企业官网–Huang Y;​​​官方文档​​



    QuerySet转换SQL



    生成一个​​QuerySet​​​对象并不会马上转换为​​SQL​​​语句,比如我们获取​​Book​​表下所有的图书:

    books = Book.objects.all()
    print(connection.queries)

    打印​​connection.quries​​​时将返回一个空的列表,说明上面的​​QuerySet​​并没有真正的执行。

    在以下情况下​​QuerySet​​​会被转换为​​SQL​​语句执行:

    Django实战教程第36部分:如何将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​​语句。