Home > Article > Backend Development > How Can I Inspect the SQL Queries Executed by Django?
How to Inspect SQL Queries in Django
Want to know the SQL statements that Django runs when executing a query? The answer is simple:
1. Find the answer from the documentation
The FAQ section of the Django documentation provides a straightforward answer:
2. Access the database Connection
can access the SQL query list through django.db.connection.queries:
<code class="python">from django.db import connection print(connection.queries)</code>
3. View the Queryset object
The Queryset object has a query attribute , which contains the query to be executed:
<code class="python">print(MyModel.objects.filter(name="my name").query)</code>
Note: The query output by is not valid SQL. The reason is:
"Django never actually interpolates parameters: it sends the query and parameters separately to the database adapter, which performs the appropriate operations."
(Taken from Django bug report #17741)
Therefore, do not send query output directly to the database.
Reset queries
If you need to reset a query, such as to see the number of queries run in a given time period, you can use django.db.reset_queries:
<code class="python">from django.db import reset_queries from django.db import connection reset_queries() # 运行你的查询 print(connection.queries) >>> []</code>
The above is the detailed content of How Can I Inspect the SQL Queries Executed by Django?. For more information, please follow other related articles on the PHP Chinese website!