読者です 読者をやめる 読者になる 読者になる

AWS / PHP / Python ちょいメモ

amazon web service , PHP, Python を使ったときのメモ。日本語でググってもわからなかった事を中心に。

Django の Debug Toolbar カンタン導入

Debug Toolbar こんなに簡単に導入出来るのか!ということでメモ。最初から入れておかないと、時間がもったいないですね(;

CakePHPでいうDebugKitに相当する機能です。手順的には、Djangoの方が一手間少ない、かな?

カンタン導入手順

  1. Debug Toolbar APP を取得
  2. settings.py に記述
  3. Django 開発サーバーを起動

Debug Toolbar APP を取得

環境によりますが、Ubuntu と pip を利用した例は次の通りです。
Django (1.6.7)、 django-debug-toolbar (1.2.2) で確認しています。

# Ubuntu
$ sudo apt-get install python-django-debug-toolbar

# pip
$ pip install django-debug-toolbar

settings.py に記述

普段開発しているプロジェクトだと、一行追加するだけで大丈夫だと思います。

# settings.py
INSTALLED_APPS += ('debug_toolbar',)

その他、前提として次の2つがあるようです。

  • DEBUG が True
  • staticfiles APP が有効
    • 'django.contrib.staticfiles' のロード
    • STATIC_URL の指定

全部いれると、こんな感じでしょうか

DEBUG = True

INSTALLED_APPS = (
    # ...
    'django.contrib.staticfiles',
    # ...
    'debug_toolbar',
)

STATIC_URL = '/static/'

Django 開発サーバーを起動

あとは、開発サーバーを起動するだけ。Apache などの 本番・Production環境では、設定されていても動作しないようになっているようです。ログイン画面だろうが、なんだろうがToolbar出てくるから当然ですね(最初、試してみちゃいました)

$ python manage.py runserver


(2015/1/29追記) どうも、開発サーバーをローカルホストで起動したときしか動かないようです。ちょっと見たいという悪魔のささやきに惑わされないセキュリティ対応ですね(ささやかれた人ですが>自分)。

# 動かなかった例
$ python manage.py runserver 0.0.0.0:8000

settings.pyの切替え忘れがあっても安心です(;


(2016/12/28追記) ちゃんと設定すればリモートからの接続でも対応できることがわかったので、エントリーにしました。ドキュメントが整備されてるツールは素敵ですね。

使う

Panel

プロジェクトにアクセスすると、画面右上に「DjDT」のロゴが。

f:id:hidehara:20150115112254p:plain

クリックすれば、様々な開発に有用な情報が可視化されるようになります。views の クラス、利用template, 発行されたSQLと対応するtemplate記述など。Redirectを抑制する事も出来るようです。

f:id:hidehara:20150115112247p:plain

Command

debugsqlshell コマンドも使えるようになります。整形されたSQL文が、ORMアクセス時に表示されるとの事。WebUIないAPP開発時も大丈夫ですね。

$ python manage.py debugsqlshell

その他

使ってみて

Djangoは、オブジェクト指向、ORマップなどが(僕の中だと)高度に組み合わせられているので、あまりSQL文などを意識する事はないです。でも、想像してたSQL文相当が出てるかな?とかを考える時などに、便利だと思います。頭では想像できても、実際に動作がみえると安心感もありますね。