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

開発サーバにmod_wsgiを利用する

Django mod_wsgi

Djangoで開発する時は"manage.py runserver"を使うのが一般的だと思いますが、以下のページで紹介されているスクリプトを利用するとmod_wsgi上で開発を行うことができます。

"Example code for such an automatic restart mechanism..."以下のスクリプトを、たとえば、myproject/utils/monitor.pyとして保存して、mod_wsgiの起動スクリプトの中で、monitor.start()を呼び出します。

# -*- mode: Python; -*-
import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'

from myproject.utils import monitor
monitor.start()

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Pythonスクリプト(.py, .pyc, .pyo)に変更があったかどうかを監視し、変更があった場合はmod_wsgiDaemonプロセスを再起動してくれます。監視インターバルは標準では1秒ですが、monitor.start()のinterval引数で変更も可能。

"manage.py runserver"の開発サーバと比べても遜色がなく快適(むしろ速い)。本番環境でmod_wsgiを使うならば開発もmod_wsgi上で行うのが合理的というもの。