Django tips: 查看当前Request所执行的所有SQL
究竟在一次Request中,Django对数据库执行了那些查询和操作呢?呵呵,Django早就为我们想好了这个问题,使用django.core.context_processors.debug模块即可。
在setting中设置:
TEMPLATE_CONTEXT_PROCESSORS = (   
    "django.core.context_processors.debug", #debug 一次请求调用到多少SQL语句",    
) 
并设置能看到次debug信息的请求IP:
INTERNAL_IPS = ('127.0.0.1',)
我们就可以在模板中设置一下,即可:
{% endblock %}
{% if sql_queries %}
<h3>SQL excute in this Request</h3>
<!-- debug: show the sql excute in this request -->
{% for query in sql_queries %}<h3>Excute times: {{query.time}}</h3>
<p>
<code>
{{query.sql}}
</code>
</p>
{% endfor %}<!-- debug ends here -->
{% endif %}
以上只会在你设置了TEMPLATE_DEBUG = DEBUG,和请求IP在INTERNAL_IPS设置过,才会显示。
看看一个截图吧:
呵呵,看到了对Session的查询。
不错吧,这样我们可以对实际执行的SQL有底了。
 
                    
                


 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号