django-debug-toolbar非。常。慢之解法與常用配置
django-debug-toolbar(以下簡寫 djdt)是 Django 非常實用的 debug 工具
爬了一下文件來寫一點 Config 說明跟撇步,安裝步驟就不提了
以下說明使用的是 2.0 版本,我這裡最新就 2.0,你那裡應該會新一些
PANELS
DEBUG_TOOLBAR_PANELS 很重要,一共有下面這些,分別代表 djdt 會幫你記錄 render 一個頁面中會用到的各部位內容
DEBUG_TOOLBAR_PANELS = [
'debug_toolbar.panels.versions.VersionsPanel',
'debug_toolbar.panels.timer.TimerPanel',
'debug_toolbar.panels.settings.SettingsPanel',
'debug_toolbar.panels.headers.HeadersPanel',
'debug_toolbar.panels.request.RequestPanel',
'debug_toolbar.panels.sql.SQLPanel',
'debug_toolbar.panels.staticfiles.StaticFilesPanel', # 很慢
'debug_toolbar.panels.templates.TemplatesPanel',
'debug_toolbar.panels.cache.CachePanel',
'debug_toolbar.panels.signals.SignalsPanel',
'debug_toolbar.panels.logging.LoggingPanel',
'debug_toolbar.panels.redirects.RedirectsPanel',
'debug_toolbar.panels.profiling.ProfilingPanel', # 超級慢
]
panel name | 作用 |
---|---|
VersionsPanel | 顯示 Django 及他認得的各套件版本號 |
TimerPanel | request/response 各階段執行時間 |
SettingsPanel | 你目前環境所使用的 Django 設定 |
HeadersPanel | Request/Response header 及 WSGI environ |
RequestPanel | Cookie/Session/GET or POST Data |
SQLPanel | 包含 SQL 的執行 順序/次數/時間/有無重複,非常強大非常好用 |
StaticFilesPanel | 會顯示 render 這一頁用了哪些靜態檔案,鉅細彌遺但很慢 |
TemplatesPanel | 會顯示這一頁用了哪些 Template 與 context 內容 |
CachePanel | 會顯示這一頁用到的 cache |
SignalPanel | 會顯示 signals 與 args / receivers |
LoggingPanel | 會顯示 python 內建的 logging 訊息 |
RedirectsPanel | djdt 預設是關閉,因為行為過於麻煩,當它開啟並偵測到 redirect 時,他會顯示一頁 redirect 的頁面,讓你可以看 djdt panel |
ProfilingPanel | djdt 預設是關閉,開啟時會幫你分析所有執行過的 py 檔案 |
redirect debug page
減慢因素
好的,當按照官方安裝步驟都設定完後,應該可以正常使用 djdt panel 了,但…每個 request 都比安裝 djdt 前慢了許多…只好把某些 panel 先關起來,
要用時再打開,才不會影響 coding,下面使用了一些設定
"DISABLE_PANELS": {
'debug_toolbar.panels.redirects.RedirectsPanel',
'debug_toolbar.panels.staticfiles.StaticFilesPanel',
'debug_toolbar.panels.profiling.ProfilingPanel'
},
"SHOW_COLLAPSED": True
參數 | 用途 |
---|---|
DISABLE_PANELS | 將指定的 panel 預設關閉 |
SHOW_COLLAPSED | djdt Panel 預設會縮起來 |
StaticFilesPanel 因為要抓所有的靜態檔案,慢是一定的,等真的需要用到在開啟即可
ProfilingPanel 同理,也是要抓所有執行過的 py 檔
關掉上面那些 panel 後的 djdt 真是神速,速度跟沒裝 djdt 的時候差不了多少了
神清氣爽!舒服!