ここでは、Windows AzureにデプロイするためのDjangoアプリケーションを作成・デバッグする方法について説明します。コマンドプロンプトから行う場合の手順は、一般的なDjangoアプリケーション開発の場合と同様です。
PTVSから実行するPythonインタプリタとしてvirtualenvを使用する場合は、Visual Studioのメニュー「ツール」→「オプション」→「Python Tools」→「Interpreter Options」→「Add Interpreter」より設定します。以下は「Django」という名前でvirtualenvを設定した場合の例です。
新しいDjangoアプリケーション作成の方法は、一般的なDjangoアプリケーション開発の場合と同様です。コマンドプロンプトでDjangoプロジェクトのフォルダに移動して以下のコマンドを入力します。
> python manage.py startapp myapp
PTVSから行う場合は、Djangoプロジェクトのコンテキストメニューから「追加」→「Add New Django app」を選択し、作成するアプリケーションの名前を入力します。
Django標準の開発サーバの起動は、一般的なDjangoアプリケーション開発の場合と同様です。コマンドプロンプトでDjangoプロジェクトのフォルダに移動して以下のコマンドを入力します。
> python manage.py runserver
PTVSから起動する場合は、ツールバーの「開始」、またはDjangoプロジェクトのコンテキストメニューから「デバッグ」→「新しいインスタンスを開始」を選択します。なお実行用のPythonインタプリタとしてvirtualenvを使用する場合は、開発サーバの起動に先立ち、Djangoプロジェクトのコンテキストメニューより「プロパティ」を選択し、プロパティエディタ「General」タブ内の「Interpreter」で、先に設定したvirtualenvを指定してください。
この方法で起動した場合、ビューやテンプレートなどコード上の任意の箇所にブレークポイントを設定してデバッグを行うとが可能になります。
ノート
この場合、開発サーバ実行中に編集したコードの自動リロードは行われません。コードの編集内容を適用する場合はPTVSより開発サーバを再起動する必要があります。
基本的な動作確認はDjango標準の開発サーバでも問題ありませんが、Windows Azure固有の機能を使用する処理について動作を確認したい場合はWindows Azureエミュレータを使用します。
Windows Azureエミュレータ上でのアプリケーション実行時にvirtualenv、または非デフォルトのロケーションにインストールしたPythonインタプリタを使用する場合は、Webロール/binフォルダ内のファイルAzureSetup.cfgをテキストエディタで開き、interpreter_pathプロパティで示されるPythonインタプリタへのパスを変更します。
interpreter_path=C:\path\to\myvirtualenv\Scripts\python.exe
警告
ただしこの状態でWindows Azureクラウドサービスにデプロイするとアプリケーションが正しく動作しなくなるので、Windows Azureクラウドサービスにデプロイする時は元の内容(%SystemDrive%\Python27\python.exe)に戻してください。
Windows Azure PowerShell上でプロジェクトフォルダに移動し、以下のコマンドを入力してWindows Azureエミュレータを起動します。なお非管理者ユーザでWindows Azureエミュレータを実行する場合、エミュレータ起動中にWindowsのユーザアカウント制御機能がローカルコンピュータの変更可否を数回確認してきますので、すべて「はい」を選択してください。
> Start-AzureEmulator
コマンドの実行が完了後、Windows Azure PowerShell上で「Role is running at ...」と表示されているURLにWebブラウザでアクセスしてアプリケーションの動作を確認します。
Windows Azureエミュレータを停止する場合は、Windows Azure PowerShell上で以下のコマンドを入力します。
> Stop-AzureEmulator
ノート
Windows Azureエミュレータ上でDjangoアプリケーションを動かす場合、Django標準の開発サーバではなく外部Webサーバ(IIS)上のFastCGIプロセスとして動作する形となりますので、静的ファイルの配置(manage.py collectstatic)などWebサーバ上での運用環境の構築時に必要となる手順を開発端末上でも予め行う必要がある点に注意してください。またコードの編集内容を反映する場合も、それまでに起動されたFastCGIプロセスを一度終了する必要があります。