この投稿は 「Django Advent Calendar 2019 - Qiita」 6日目の記事です。
Python 開発の IDE には「PyCharm」を激推ししている akiyoko です。
推しの理由は、以下の点が非常に有用だと感じているからです(JetBrains のステマじゃないですよん 😅)。
- インストールしたそのままの状態で快適に使える
- 「venv」(仮想環境を作成するためのモジュール)や「pip」(パッケージ管理ツール)のコマンドの使い方が分からなくても、画面からポチポチと操作できる
- コードジャンプ機能と自動整形機能を使うことで開発効率が著しく向上する
- デバッグ実行を使うことでコード解析が捗る
中でもデバッグ実行が便利ですよね。ライブラリの中もどんどん潜ってデバッグ実行できるので、障害解析やコードの理解が格段に捗ります。
Django の開発をする際にももちろん PyCharm を愛用しています。プライベートでは有償版の PyCharm Professional Edition を利用していますが、仕事では無償版の PyCharm CE(Community Edition)を利用しています。
PyCharm の開発元 JetBrains の 昨年の調査 によると、Webアプリ開発をするときは 30〜40%くらいの方が PyCharm(有償版・無償版を合わせて)を利用しているとのこと。私の周りのつよつよ Pythonista の方でも PyCharm を愛用している人は多いです。
この記事を書くにあたって事前に統合開発環境(IDE)の利用状況をアンケートしてみたのですが、
Python で Webアプリケーション開発をしている方にアンケートです。
— akiyoko/ 『現場で使えるDjangoの教科書』著者 (@aki_yok) December 5, 2019
統合開発環境(IDE)は何を使っていますか?#Django
PyCharm の利用率が 30〜40%なのは JetBrains の調査と概ね合致します。
それにしても、VS Code の勢いがすごいですね!
Webアプリ開発ではフロントエンドまわりの面倒も見なくてはいけないことが多々あるので、JS まわりのサポートが弱い PyCharm CE(無償版)よりも、VS Code が選ばれるという状況があるのかなと感じました。皆さま、アンケートにご協力ありがとうございました 🙇♂️
前置きが長くなりましたが、ここから本題です。
有償版・無償版を問わず、PyCharm を利用して Django プロジェクトの開発をするなら「これだけはぜひ設定しておいてほしい」という便利な設定があります。
それは、「runserver」の実行(Run / Debug)設定 です。
この設定をすることで、
- ワンクリックで runserver のデバッグ実行が可能
- runserver の実行で PyCharm のターミナルツールウィンドウを専有しない
というメリットが得られます。
runserver の実行(Run / Debug)設定
では、その設定方法です。*1
Django プロジェクトのひな型を作成する際に「startproject」コマンドを実行すると、管理コマンドを実行するための「manage.py」が自動生成されますよね。
その「manage.py」を右クリックし、「Create 'manage' ...」を選択(PyCharm 2020.3 では「Modify Run Configuration...」)します。なお、すでにこのプロジェクトで Run / Debug 設定をしたことがある場合は「manage.py」の右クリック時にこの選択肢が表示されないのでご注意ください(その場合は「Run」>「Edit Configurations...」メニューから Run / Debug の設定をおこなってください)。
Run / Debug 設定画面が表示されるので、「Parameters」に「runserver」と入力して、「OK」をクリック します。この際、「Name」には、分かりやすいようにたとえば「runserver」と入力しておけばよいでしょう。
Run / Debug 設定を済ませると、ナビゲーションバーの右側に「runserver」との表示がされます。
「runserver」の右側の虫アイコンをクリックすればデバッグ実行が開始されます。
デバッグ実行を開始すると、デバッグツールウィンドウ(Debug タブ)が起動してコンソールにログが出力されます。コードの途中にブレークポイントを置いておけば、コードが実行されたときにそこで中断されて変数などがデバッグができるようになります。
デバッグツールウィンドウの使い方については、公式ヘルプの「デバッグツールウィンドウ — PyCharm」を参照してください。
いつもなら runserver を実行するのに
> python manage.py runserver
というコマンドをターミナルツールウィンドウ(Terminal タブ)を使って実行するところを、デバッグ実行はそれとは別のデバッグツールウィンドウ(Debug タブ)上で動作するため、ターミナルのウィンドウを専有することがありません。このため、makemigration、migrate、createsuperuser などの管理コマンドを実行するために、わざわざターミナル上で実行している runserver を停止して、その後 runserver を再実行する・・なんてことをする手間が不要になるのです。
これは便利ですよね〜 😚
おまけ ①
ここで、便利な裏技(?)をひとつ紹介します。
デバッグ実行中にブレークポイントでコードの実行を止めた状態ではデバッグツールウィンドウに「Debugger(デバッガ)」と「Console(コンソール)」という2つのタブが表示されます。ここで、「Console」タブをクリックして、Python ロゴのアイコン(Show Python Prompt)をクリックしてみてください。
すると、任意の Python コードが、止めたコード内で実行できるようになります。
ハイ、便利〜 😆
おまけ ②
runserver 実行時にオプションを指定したい場合がありますよね。
そんな場合は、ナビゲーションバー右側の「runserver」をクリックし、「Edit Configurations...」を選択して Run / Debug の設定画面を開きます(「Run」>「Edit Configurations...」メニューからでも開くことができます)。
「Parameters」に設定している「runserver」のところを「runserver --settings xxx」などと書き換えることで、実行時のオプションが指定可能です。
また、「Environment variables」から「DJANGO_SETTINGS_MODULE」などの環境変数を設定することも可能です。
おまけ ③
runserver の他によく利用する Django の管理コマンドとして、「test」(ユニットテストの実行)があります。
今回紹介した runserver の実行設定と同じようにワンクリックで Django プロジェクトのユニットテストを実行したい場合は、次のように「runserver」の設定をコピーするのが簡単です。
コピーしたら、「Parameters」を「test」に書き換えます(「Name」も適宜「test」などと書き換えます)。
あとは、「Run」アイコンか「Debug」アイコンをクリックするだけで Django プロジェクトのユニットテストが実行できるようになります。
おまけ ④
ここまでくると、Coverage.py を利用したカバレッジもワンクリックで実行したいですよね。
こんな感じで Run / Debug 設定をすれば OK です。
ポイントは、「Script path」のところを「Module name」に変更してから、「coverage」と手入力するところですかね(仮想環境下にインストールされた coverage の絶対パスを「Script path」に指定してもよいですが)。もちろん、pip で coverage をインストールしておいてくださいね。
ちなみに、有償版の PyCharm Professional では、PyCharm に内蔵された独自のカバレッジ機能を使ってワンクリックでカバレッジを取得することができます。*2
まとめ
PyCharm で Django の開発をするなら、runserver の実行(Run / Debug)設定をやっておきましょう。
- 「manage.py」を右クリックして「Create 'manage' ...」を選択
- Run / Debug 設定画面で「Parameters」に「runserver」と入力して「OK」
これだけです。ほんの5分足らず(もしかしたら1分くらいで??)で設定は終わります。
runserver のデバッグ実行をポチッとワンクリック(ショートカットもあります)でスタートできる便利さを味わうと、もう PyCharm から離れられませんよ〜 😙
Enjoy Django & PyCharm !! 😉
明日は、nogissh さんの「Django Advent Calendar 2019 - Qiita」7日目の記事です。よろしくお願いします。
宣伝
Django の技術同人誌をこれまでに4冊出しました。開発のお供にどうぞ。
現場で使える Django の教科書《基礎編》
「現場で使える Django の教科書」シリーズ第1弾となる Django の技術同人誌。Django を現場で使うための基礎知識やベストプラクティスについて、初心者・初級者向けに解説した本です。B5・本文180ページ。
★ Amazon(電子版/ペーパー版)
★ BOOTH(ペーパー版)
現場で使える Django の教科書《実践編》
《基礎編》の続編にあたる「現場で使える Django の教科書」シリーズの第2弾。認証まわり、ファイルアップロード、ユニットテスト、デプロイ、セキュリティ、高速化など、さらに実践的な内容に踏み込んでいます。現場で Django を本格的に活用したい、あるいはすでに活用している方にピッタリの一冊。B5・本文180ページ。
★ Amazon(電子版)
★ BOOTH(ペーパー版)
現場で使える Django REST Framework の教科書
Django で REST API を構築する際の鉄板ライブラリである「Django REST Framework」(通称「DRF」)にフォーカスした、「現場で使える Django の教科書」シリーズの第3弾。B5・本文204ページ。
★ Amazon(電子版)
★ BOOTH(ペーパー版)
現場で使える Django 管理サイトのつくり方
Django の管理サイト(Django Admin)だけに特化した、ニッチでオンリーワンな一冊。管理サイトをカスタマイズする前に絶対に読んでほしい本です。B5・本文152ページ。
★ Amazon(電子版)
★ BOOTH(ペーパー版)
*1:PyCharm のバージョンは Community Edition(無償版)の「2019.3」(現時点での最新バージョン)です。