2009-12-28 73 views
2

我開發了一個使用Django的應用程序,一切正常,但我不知道幕後發生了什麼。我想知道:什麼是在Django中剖析視圖的最佳方式?

  • 爲每個請求命中數據庫多少次?
  • 每個查詢的執行時間是多少?
  • 呈現模板需要多長時間?
  • 定期分析信息(ncalls,每個功能的總時間)。

是否有一箇中間件來處理這個,我可以安裝?哪些是描述我的觀點的最佳實踐?

感謝

回答

0
{% if debug %} 
    <div id="debug"> 
    <h2>Queries</h2> 
    <p> 
     {{ sql_queries|length }} Quer{{ sql_queries|pluralize:"y,ies" }} 
     {% ifnotequal sql_queries|length 0 %} 
     (<span style="cursor: pointer;" onclick="var s=document.getElementById('debugQueryTable').style;s.display=s.display=='none'?'':'none';this.innerHTML=this.innerHTML=='Show'?'Hide':'Show';">Show</span>) 
     {% endifnotequal %} 
    </p> 
    <table id="debugQueryTable" style="display: none;"> 
     <col width="1"></col> 
     <col></col> 
     <col width="1"></col> 
     <thead> 
     <tr> 
     <th scope="col">#</th> 
     <th scope="col">SQL</th> 
     <th scope="col">Time</th> 
     </tr> 
     </thead> 
     <tbody> 
     {% for query in sql_queries %}<tr class="{% cycle odd,even %}"> 
     <td>{{ forloop.counter }}</td> 
     <td>{{ query.sql|escape }}</td> 
     <td>{{ query.time }}</td> 
     </tr>{% endfor %} 
     </tbody> 
    </table> 
    </div> 
{% endif %} 

Django Snippet: Template Query Debug

+0

非常有趣,謝謝!我會嘗試。 – jbochi 2009-12-28 17:33:31

2

滿足您的所有需求,有分析之外的一個項目,是出色的django debug toolbar

對於標準分析,您需要使用repoze.profile(這意味着您必須運行帶有WSGI接口的Django,例如mod_wsgi)。

如果你是硬核,並需要調試內存泄漏使用dozer(也WSGI組件)。

相關問題