Django强大的ORM简化了数据库交互,但在某些情况下,检查正在执行的原始SQL查询非常有益。本文演示了如何检索和分析这些SQL语句以进行调试和优化。
要访问Django生成的原始SQL查询,有几种方法:
django.db.connection.queries: 包含当前数据库连接执行的SQL查询列表:
<code class="language-python"> from django.db import connection print(connection.queries)</code>
Querysets: 每个Queryset都有一个query属性,用于存储它将执行的SQL查询:
<code class="language-python"> print(MyModel.objects.filter(name="my name").query)</code>
注意: Django的查询输出不是有效的SQL。数据库适配器会单独插入参数,防止在没有适当验证的情况下直接执行。
要重置Django跟踪的查询列表,请使用reset_queries函数:
<code class="language-python">from django.db import reset_queries from django.db import connection reset_queries() # 在此处运行您的查询 print(connection.queries) >>> []</code>
以上是如何在 Django 中查看和管理原始 SQL 查询?的详细内容。更多信息请关注PHP中文网其他相关文章!