Laravel では dd( ) コマンドを使ってクラスや変数の内容をブラウザに書き出してアプリケーションの実行を停止することができた.Django では dd( ) のような関数は準備されていないようで,デバッグツールバーをインストールする必要がある(参考).まず,Anaconda プロンプトで次のようなコマンドを実行して django-debug-tollbar をインストールする.なお,Mac では pip list | find "debug"
の代わりに pip list | grep debug
を使用すると良い.
(base) C:\Users\lecture\Documents\django\django_comment>pip list | find "debug" ⏎
(base) C:\Users\lecture\Documents\django\django_comment>pip install django-debug-toolbar ⏎
Collecting django-debug-toolbar
Downloading django_debug_toolbar-2.2-py3-none-any.whl (198 kB)
|████████████████████████████████| 198 kB 298 kB/s
Requirement already satisfied: Django>=1.11 in c:\users\lecture\anaconda3\lib\site-packages (from django-debug-toolbar) (3.1.1)
Requirement already satisfied: sqlparse>=0.2.0 in c:\users\lecture\anaconda3\lib\site-packages (from django-debug-toolbar) (0.3.1)
Requirement already satisfied: pytz in c:\users\lecture\anaconda3\lib\site-packages (from Django>=1.11->django-debug-toolbar) (2019.3)
Requirement already satisfied: asgiref~=3.2.10 in c:\users\lecture\anaconda3\lib\site-packages (from Django>=1.11->django-debug-toolbar) (3.2.10)
Installing collected packages: django-debug-toolbar
Successfully installed django-debug-toolbar-2.2
(base) C:\Users\lecture\Documents\django\django_comment>pip list | find "debug" ⏎
django-debug-toolbar 2.2
(base) C:\Users\lecture\Documents\django\django_comment>
django_comment/settings.py に登録する.
django_comment/settings.py (抜粋)
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True # ここが Trueになっていることを確認する
ALLOWED_HOSTS = []
# Application definition
INSTALLED_APPS = [
'comments.apps.CommentsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'debug_toolbar',
]
MIDDLEWARE = [
'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',
'debug_toolbar.middleware.DebugToolbarMiddleware',
]
INTERNAL_IPS = ("127.0.0.1",)
ROOT_URLCONF = 'django_comment.urls'
次に,django_comment/urls.py に登録する.
django_comment/urls.py (抜粋)
# from django.contrib import admin
from django.urls import include, path
from . import settings
urlpatterns = [
path('', include('comments.urls')),
# path('admin/', admin.site.urls),
]
if settings.DEBUG:
import debug_toolbar
urlpatterns.append(path("", include(debug_toolbar.urls)))
Webサーバを起動して,任意のページをブラウザで表示すると,画面右側にデバッグツールが表示される.
(base) C:\Users\lecture\Documents\django\django_comment>python manage.py runserver ⏎ Watching for file changes with StatReloader Performing system checks...
たとえば,デバッグツールバーの「SQL」をクリックすると,実行されたSQLの詳細などが確認できる.
なお,デバッグツールバーの使用を一時的に停止したい場合は,django_comment/settings.py の MIDDLEWARE
の部分をコメントアウトすると良い.
django_comment/settings.py (抜粋)
MIDDLEWARE = [
'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',
# 'debug_toolbar.middleware.DebugToolbarMiddleware',
]