5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

django-extensionsをインストールしてrunserverより便利なrunserver_plusを使う

Last updated at Posted at 2020-08-23

やりたいこと

Djangoのエラー画面上(ブラウザ)でデバグする。
対話型シェルを使えるようにする。

django-extensionsWerkzeugというライブラリを使う。

django-extensionsって?

django-extensionsmanage.pyの機能を拡張してくれるもので、 他にもいろいろながコマンドがあります。

Werkzeugって?

Werkzeugは、包括的なWSGI Webアプリケーションライブラリです。これは、WSGIアプリケーション用のさまざまなユーティリティの単純なコレクションとして始まり、最も高度なWSGIユーティリティライブラリの1つになりました。

WSGIを簡単に使えるようにするものってことですね。

WSGIって?

WSGI [1]は、サーバー、Pythonモジュール、フレームワーク、API、またはあらゆる種類のソフトウェアではありません。これは、サーバーとアプリケーションが通信するための単なるインターフェース仕様です。

PythonのWebフレームワークがいろいろと出てきて、バラバラの通信規格が存在するようになってしまったためインターフェースを統一する目的があったようです。

インストール

インストールして

$ pip install django-extensions Werkzeug

settings.pyに追記するだけ

pj_name/settings.py
...
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'django_extensions', # <- 追記
]
...

コード

たとえば’test’という文字列を表示するだけのviewで

views.py
from django.shortcuts import render
from django.http import HttpResponse


def test(request):
    message = 'test'
    return HttpResponse(message)

変数messagemesage とタイプミスすると

views.py
from django.shortcuts import render
from django.http import HttpResponse


def test(request):
    message = 'test'
    return HttpResponse(mesage) # <- タイポ

実行

runserver

まずはいつものrunserverを実行。

$ python manage.py runserver

http://127.0.0.1:8000/ にアクセスします。
こんなエラー画面。

スクリーンショット 2020-08-21 12 21 41

runserver_plus

今度はrunserver_plusを実行。
runserverをrunserver_plusに変えるだけ。
Debugger PIN は後で使います。

$ python manage.py runserver_plus

...
 * Debugger is active!
 * Debugger PIN: 125-696-991 # <- これ

runserver_plusではこんな感じ。

スクリーンショット 2020-08-21 11 46 30

コードのエリアをマウスオーバーすると、ターミナルアイコンが出てくるのでクリックします。

スクリーンショット 2020-08-21 12 10 42

先程のDebugger PINを入力

スクリーンショット 2020-08-21 12 13 02

対話型シェルが使えるようになります。

スクリーンショット 2020-08-21 12 14 31

おしまい

最後まで読んでいただきありがとうございました。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?