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设置过,才会显示。
看看一个截图吧:
image 
呵呵,看到了对Session的查询。
不错吧,这样我们可以对实际执行的SQL有底了。
Technorati 标签: Django,SQL,Request,Session,tips,python
posted @ 2008-04-18 21:38  MK2  阅读(1629)  评论(4编辑  收藏  举报