VSCodeでdjango(Python)をデバッグ、及びステップ実行する

vscodeでdjango(python)を操作するにあたり、djangoのデバッグ及びステップ実行するための、設定ファイルの作成と設定ファイルの編集コードを紹介します。

前回からのIDEの環境をよりアップグレードさせた記事になります。

今回のゴール

こちらになります。

ステップ実行タグを操作できる

こちらは設定ファイルを作成し実行するだけで自動的に出現するようになります。stepover等の操作コマンドも見てわかります。

変数を取得できる

こちらは設定ファイルを作成し実行することで確認できるようになります。

環境

環境は以下になります。ちなみにヒロヤンの場合はpipenvでの環境開発を行っています。

環境

・OS : Mac

・python 3.8

・djano 2.2

・IDE VSCode (version1.49)

・pipenvで環境構築済み

設定ファイル(launch.json)を作成する

まずデバッグ専用のファイルを作成する必要があります。

まずはvscodeの左のカラムの虫マークが入ったアイコンをクリックします。

そうすると説明文が出てきますので、create a launch.json file をクリックします。書いてある通りですが、日本語でlaunch.jsonファイルを作成する意味になります。

捕捉までに説明するとこのlaunch.jsonファイルはデバッグ実行に関連する情報を記入するファイルになります。

そうすると以下のよう選択が出てきますので、Python Fileを選択します。

クリックすると以下のように、.vscode直下にlaunch.jsonファイルが作成されます。

こちらで設定ファイルの作成ができました。

launch.jsonを編集する

launch.jsには以下のコードに書き換えます。

順に説明をしていきます。

  • 5行目はデバッガーの名前になります。好きに設定して構いません。
  • 6行目が設定ファイルを動かす言語のタイプを入力します。
  • 8行目がmanage.pyが存在するpathを設定します。
  • 11行目がdjangoを動かすときの実行コマンドのrunserverを入力します。

これで設定が完了しました。



実際にデバッガーを動かす

それでは実際に動かしてみます。

基本的にはpipenvを起動していない状態で左のデバッグボタンを押します。

左のカラムの虫マークが付いたデバッグボタンをクリックすると、先ほどのlaunch.jsonファイルの”name”: “Python: Django”で付けたnameのバリューの名前の実行コマンドが生成されています。

こちらをクリックすると自動的にpipenv環境でデバッグモードが立ち上がります。

立ち上げるといつもは青色のvscodeの最下段がオレンジ色に変わったのがわかります。

例えばこのように赤丸でBreakpointを設置してからデバッグモードでdjangoを動かしながら様子を見てみると、以下のように動作中の扱いができる変数の取得ができます。

このようにstep実行タグも自動的に出現し、操作ができます。

参考

こちらが今回参考にしたvscodeのサイトになります。

全文英語になります。

https://code.visualstudio.com/docs/python/tutorial-django

スクールを利用して本格的に学ぶ

いかがでしたでしょうか?

10人中9人が挫折すると言われるプログラミングを、ヒロヤンも実はプログラミングスクールで学習をしてきたからで、結果、今はPythonエンジニアとして働いています。

挫折率が高いプログラミングこそお金を払ってメンターを付けて、道を見失わないように環境を構築する必要があるのではないでしょうか。

これはダイエットで自分一人では痩せられないけど、トレーナーを付けて否が応でもせざるを得ない環境を作ると一緒ですね。

ヒロヤンもプログラミング勉強開始直後はあれこれ悩みましたが、悩むよりも手っ取り早くスクールに登録した方が最短ルートで勉強できるのではないかと考え、結果挫折せずに今に至っています。

今なら無料でキャリアカウンセリングを行っているCodeCamp(コードキャンプ)のようなプログラミングスクールもありますのでこれを機会に是非カウンセリングだけでも受けてみてはいかがでしょうか?

CodeCampで無料のカウンセリング

上記リンク先から無料相談ができます。

またこちら(↓)ではPython専用のプログラミングスクールをまとめ紹介しています。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です