擅长:python、mysql、java
<p>这是对公认答案的一点改进。在某些应用程序中创建一个名为extra_imports.py的python文件(例如<code>some_app</code>)</p>
<p>额外进口.py</p>
<pre><code>from django.conf import settings
settings.DEBUG = True
from django.db import connection, reset_queries
def num_queries(reset=True):
print(len(connection.queries))
if reset:
reset_queries()
</code></pre>
<p>现在,如果您使用的是django_扩展中的shell_plus(如果不使用,请检查一下),请将以下行添加到settings.py</p>
<pre><code>SHELL_PLUS_PRE_IMPORTS = [('some_app.extra_imports', '*')]
</code></pre>
<p>如果您使用的是django shell,请在shell内部运行此命令</p>
<pre><code>exec(open('some_app/extra_imports.py').read()) # python3
execfile('some_app/extra_imports.py').read()) # pyhton2
</code></pre>
<p>现在</p>
<pre><code>In [1]: User.objects.all()
In [2]: num_queries()
1
In [3]: User.objects.filter(company=Company.objects.first()).all()
In [4]: num_queries()
2
</code></pre>