Python Django 入門トップページ


このページは Django version 3 系の情報です.新たな version 4 系の情報はこちらからどうぞ.

Django によるコメント掲示板の開発:目次

  1. プロジェクトの作成
  2. Git でコミット
  3. Web サーバを起動しておく
  4. Config
  5. Comments アプリケーションを作る
  6. はじめてのビューを作成する
  7. モデルを作る
  8. アプリケーションを有効にする
  9. マイグレーション
  10. テストデータの設定
  11. データベースからコメント一覧を取得して表示してみよう
  12. Bootstrap の導入
  13. コメントの詳細表示
  14. urls.pyの書き方
  15. HTML のテンプレート化
  16. コメントの新規投稿
  17. コメントの編集機能を追加する
  18. さらにテンプレート化
  19. モデル,マイグレーションファイル,フォームの関連
  20. 入力内容の検証(バリデーション)
  21. コメントを削除する
  22. 一覧を逆順にする
  23. ページネーション
  24. フラッシュメッセージ
  25. Static コンテンツの設置
  26. 更新や削除にもフラッシュメッセージを表示
  27. テストの自動化を実現しよう
  28. デバッグツールバーを使う
  29. generic モジュールを使わずにコメント一覧を取得する
  30. コメント一覧のページネーション
  31. 一覧の表示順序を制御する
  32. generic モジュールを使わずにコメントの詳細を表示する
  33. コメント詳細にページ送り機能を作成する
  34. generic モジュールを使わずにコメント登録機能を作成する
  35. generic モジュールを使わずにコメント編集機能を作成する
  36. generic モジュールを使わずにコメント削除機能を作成する

Django によるコメント掲示板の開発

デバッグツールバーを使う

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...

django-comment-05

たとえば,デバッグツールバーの「SQL」をクリックすると,実行されたSQLの詳細などが確認できる.

django-comment-05

なお,デバッグツールバーの使用を一時的に停止したい場合は,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',
]

目次に戻る