Django のテストやデバッグに便利なツールバー

記事
IT・テクノロジー

Django のテストやデバッグに便利なツールバー

Django のフレームワーク自体に必要な基本機能が含まれていますが、利用すると便利な外部のモジュールもいろいろあります。その中でも便利なモジュールの一つがデバッグ用のツールバーです。この記事では、デバッグ用のツールバーの導入のやり方を紹介します。


デバッグ用のツールバーのインストール

このモジュールは「django-debug-toolbar」と呼ばれるパッケージです。 Django のフレームワークに組み込みできるデバッグ用の「アプリ」です。

利用する場合は、「pip」でインストールします

$ pip3 install django-debug-toolbar

django-debug-toolbar の基本設定

Django のアプリの扱いなので、プロジェクトフォルダの「settings.py」の中の「INSTALLED_APPS」に登録します。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'app',
    'debug_toolbar'
]
さらに、「settings.py」の「MIDDLEWARE」にも追加します。

MIDDLEWARE = [
    'debug_toolbar.middleware.DebugToolbarMiddleware',
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]
これで使用は可能になります。

開発専用の設定にする

このツールバーは開発時のテストやデバッグの時に使用するものです。 インターネットに公開(デプロイ)する場合は、使用しません。というより、利用者には見せない機能になります。

そこで、このツールバーは、指定した IP アドレスのリクエストのみに表示するようにする事ができます。

「INSTALL_IPS」を「settings.py」に作成して指定することで、「127.0.0.1」のサーバーを使用した時のみに表示されるようにしておきます。こうすることで、公開時に設定を変更しなくても、公開用のサーバーでは表示されなくなります。

INTERNAL_IPS = ['127.0.0.1']

を追加します。場所は、「settings.py」の中なら何処でも問題ありません。 最後に追加すれば良いかと思います。

あとは、DEBUG モードのみで表示されるようにも設定します。

プロジェクトフォルダの「urls.py」に以下のような記述を追加します。

if settings.DEBUG:
    from django.conf import settings
    import debug_toolbar
    urlpatterns = [ path('__debug__', include(debug_toolbar.urls)),] + urlpatterns
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

何ができるか?

設定が完了したので、開発用のサーバーを立ち上げてページにアクセスすると、Web ブラウザの右側にツールバーが表示されるようになります。表示されない場合は、隠れている場合もあるので「DJDT」のタブをクリックすると表示されると思います。

ツールバーのメニューには

* History
* Versions
* Time
* Settings
* Handers
* Request
* SQL
* Static files
* Templates
* Cahce
こうした情報を見る事ができるので、動作が上手くいかない場合などは、設定が想定通りにされているかなどをチェックできますし、HTTP のやり取りのヘッダーやリクエストの情報も表示できます。処理にかかった時間やその内訳も見る事ができます。

Django を使うと、データベースのアクセスは裏方で Django がやってくれるわけですが、データベースに送られた SQL も見る事ができます。

こうした情報はデバッグメッセージやデバッガーでも見ることはできますが、こうしたツールバーで必要な時にいつでも見られるのは開発中やデバッグ時にはありがたい機能です。

まとめ
この記事では、Django の外部モージュールの一つで開発やデバッグで役に立つ、デバッグツールバーの紹介を簡単にまとめてみました。

デバッグ時には色々な情報をみたいものですが、その都度、デバッガーやデバッグメッセージを入れるのは面倒なものです。こうした、開発時専用のツールバーがあると基本的な情報はいつでも手軽に見る事ができるのでデバッグやテストの効率が飛躍的に高まります。

また、ページの処理にかかる処理や処理時間も見る事ができるのでパフォーマンスの改善にも役立てることができます。

簡単にインストールできるので Django で開発する場合は是非利用したいパッケージです。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す