django-debug-toolbarでデバッグ効率を上げる方法【Django】

django-debug-toolbarでデバッグ効率を上げる方法【Django】

開発中にこんなことを思ったことはありませんか?

「リクエストで受け取った値や、テンプレートに渡された値を確認したい」、「発行されたSQL文や、実行時間を知りたい」

開発中に色々なデバッグ情報が表示できると便利ですよね。

今回はDjangoのdjango-debug-toolbarを利用して、リクエストやレスポンスのヘッダー情報、テンプレート情報、発行されたSQL文など、様々なデバッグ情報をブラウザ上に表示する方法を解説していきます。

django-debug-toolbarを利用することで、開発効率を上げることができます。簡単に導入できるので、是非、最後までご覧ください。

django-debug-toolbarの導入

まずはdjango-debug-toolbarをインストールしていきます。

以下のコマンドを実行します。

pip install django-debug-toolbar

次に、settings.pyINSTALLED_APP‘debug-toolbar’を追加します。

INSTALLED_APPS = [
    # ...
    'django.contrib.staticfiles',
    # ...
    'debug_toolbar', 
]

‘django.contrib.staticfiles’というのも必要ですが、こちらはデフォルトで設定されています。

次は、MIDDLEWARE‘debug_toolbar.middleware.DebugToolbarMiddleware’を追加します。

MIDDLEWARE = [
    # ...
    'debug_toolbar.middleware.DebugToolbarMiddleware',
]

次に、INTERNAL_IPSを追加します。

INTERNAL_IPS = [
    '127.0.0.1',
]

ここで、INTERNAL_IPS‘127.0.0.1’を追加していますが、基本的には‘127.0.0.1’で問題ありませんが、場合によってはdebug-toolbarが表示されない場合があります。

その場合は、適当なview関数でrequest.META.get(‘REMOTE_ADDR’)を実行すると、接続元のIPを取得できるので、それをINTERNAL_IPSに追加します。

最後にプロジェクトのurls.pyに以下を追加します。

import debug_toolbar 

urlpatterns = [
    # ...
]

if settings.DEBUG:
    urlpatterns += [path('__debug__/', include(debug_toolbar.urls))]

これで設定が終わりました。

ブラウザでhttp://127.0.0.1:8000/にアクセスしてみましょう。以下のように右側にdebug-toolbarが表示されているはずです。

各項目をクリックすると、色々な情報が表示されます。

テンプレートやリクエストの情報、発行されたSQLの確認もできます。

django-debug-toolbarが表示されない場合

debug-toolbarが表示されない場合、次の事を確認してみましょう。

DebugがTrueになっているか

settings.pyTrueになっていないと、debug-toolbarは表示されません。Falseになっていないか確認してみましょう。

INTERNAL_IPSに接続元のIPを追加する

INTERNAL_IPSには、接続元のIPアドレスを追加します。

‘127.0.0.1’を追加しても表示されない場合は、request.META.get(‘REMOTE_ADDR’)を実行すると、接続元のIPを取得できるので、それをINTERNAL_IPSに追加しましょう。

bodyタグを使用していない

HTMLでbodyタグを使用していないと、debug-toolbarが表示されません。

使っていない場合はbodyタグを使いましょう。

まとめ

django-debug-toolbarを使うと、様々なデバッグ情報を表示できて便利です。

リクエストで受け取った値や、テンプレート情報も確認できて、開発効率を上げることができます。導入も簡単にできます。