以前書いたDjangoに関する記事の閲覧数が多いので、今回は私がDjangoアプリケーションを開発する際の設定について紹介します。
Pythonのインストール
こちら
今更2系を選ぶ理由は無いので、3系の最新をダウンロード・インストールしましょう。
Visual Studio Codeのインストール
PythonはVisual StudioやIntelliJなどのIDEでも開発可能ですが、設定が楽+軽量なので私はVisual Studio Codeを利用しています。
というわけで、まずはVisual Studio Codeをインストールしましょう。
プラグイン追加
Djangoの開発をするうえで必要な以下プラグインをVisual Studio Codeに追加します。
Jinjaについてはテンプレート用です(Djangoテンプレートでもハイライトが効くようになります)。
※Django template用のプラグインもあるのですが、これは.htmlの拡張子レベルで関連付けを行ってしまうため、通常のHTMLを書くときに影響が出ますので利用していません。
プロジェクトの作成
以前の記事を参考にしてください。
Python実行ファイルの定義
Pythonで開発するにあたり、ローカルにインストールしたPythonの実行パスを定義します。
「ファイル」→「基本設定」→「設定」または「エディタ左下の歯車」→「設定」でユーザー設定(プロジェクト単位で変更する場合はワークスペース設定)ファイルを開き、以下を定義してください。
※{path/to/〇〇} にはPythonまたは関連ライブラリがインストールされているディレクトリを定義してください。
// settings.json
{
// Pythonの実行パス(Windowsの場合は.exeが必要)
"python.pythonPath": "{path/to/python}/python(.exe)",
// Pythonのライブラリパス
"python.autoComplete.extraPaths": [
"{path/to/scripts}",
"{path/to/site-packages}"
],
// Pylint(Windowsの場合は.exeが必要)
"python.linting.pylintPath": "{path/to/pylint}/pylint(.exe)"
}
実行設定の追加(launch.json)
Pythonに限らず、Visual Studio Codeで開いたプロジェクトを実行するために「F5」キーを押すと、実行する言語を選択するエリアが表示されます(必要に応じてここで対象言語用のプラグインをインストールすることができます)。
ここで言語を選ぶと、Visual Studio Codeでは関連する実行設定ファイル(launch.json)を「プロジェクトルート/.vscode」に自動で生成してくれます。
このファイルにある「Django」の箇所を必要に応じてメンテナンスします(以下は例ですが、初期設定から基本的には変更不要です)。
{
"version": "0.2.0",
"configurations": [
{
"name": "Django",
"type": "python",
"request": "launch",
"stopOnEntry": false,
"pythonPath": "${config:python.pythonPath}",
"program": "${workspaceRoot}/manage.py",
"cwd": "${workspaceRoot}",
"args": [
"runserver",
"--noreload"
],
"env": {},
"envFile": "${workspaceRoot}/.env",
"debugOptions": [
"WaitOnAbnormalExit",
"WaitOnNormalExit",
"RedirectOutput",
"DjangoDebugging"
]
}
]
}
${config:python.pythonPath}
は先ほど設定したpythonPath、${workspaceRoot}
は現在Visual Studio Codeで開いているプロジェクトのルートディレクトリを示しています。
実行
エディタ左側の虫マークを選択し、「デバッグ」という表示横のプルダウンから「Django」を選び、横向き三角ボタンを押せば実行されます。
ちなみに、上記設定でデバッグ可能なので、ブレークポイントを貼るとそこで止められますし、変数の中身も確認できます。
ただし、それらは「--noreload」が無ければできません。
なので、通常の「ファイル変更」→「リロード」という手順を踏む場合は、上記設定から「--noreload」を除外して実行することになります(この場合、エディタのデバッグコンソールにも何も出力されません)。
eclipseやIntelliJでも同様のようです。
なお、私個人が作っているものがこちらにありますので、Djangoでの開発に興味のある方は是非ご覧ください。
Djangoの記事は需要がありそうなので、またそのうち書きます。