この記事は、Visual Studio で Django を操作する方法を示す 5 部構成のチュートリアル シリーズの最初の手順です。 Django は、迅速で安全でスケーラブルな Web 開発用に設計された高レベルの Python フレームワークです。 Visual Studio には、Django ベースの Web アプリケーションの作成を効率化するために使用できるプロジェクト テンプレートが用意されています。 このチュートリアル シリーズでは、Visual Studio プロジェクト テンプレートのコンテキストで Django フレームワークについて説明します。
チュートリアルの手順 1 では、次の方法を学習します。
- 空の Django Web プロジェクト テンプレートを使用して Django Web アプリ プロジェクト を作成する
- 定型コードを調べてアプリを実行する
- Django Web アプリ用の Git リポジトリを作成する
- Git ソース コード コントロールを操作する
- Django Web アプリの仮想環境を作成する
[前提条件]
Windows 上の Visual Studio 2022 以降。Visual Studio インストーラーで次のオプションが選択されています。
[ワークロード] タブ で 、 Python 開発 オプションを選択します。 詳細については、「Visual Studioでの Python サポートのインストール」を参照してください。
[コード ツール] の [個々のコンポーネント] タブで、[Git for Windows] オプションを選択します。
Windows 上の Visual Studio 2017 以降。Visual Studio インストーラーで次のオプションが選択されています。
[ワークロード] タブ で 、 Python 開発 オプションを選択します。 詳細については、「Visual Studioでの Python サポートのインストール」を参照してください。
[コード ツール] の [個々のコンポーネント] タブで、[Git for Windows] オプションと [GitHub Extension for Visual Studio] オプションを選択します。
Visual Studio の Django プロジェクト テンプレートは、以前のすべてのバージョンの Python Tools for Visual Studio に含まれています。 テンプレートの詳細は、このチュートリアル シリーズの説明とは異なる場合があります。特に、以前のバージョンの Django Web フレームワークでは異なる場合があります。
Visual Studio for Mac はサポートされていません。 詳細については、「 Visual Studio for Mac の概要」を参照してください。 Windows、Mac、Linux 上の Visual Studio Code は、 使用可能な拡張機能を通じて Python と適切に連携します。
Visual Studio プロジェクトと Django プロジェクト
Django の用語では、 Django プロジェクト には、1 つ以上の "アプリ" と共に複数のサイト レベルの構成ファイルがあります。完全な Web アプリケーションを作成するには、これらのアプリを Web ホストにデプロイします。 Django プロジェクトには複数のアプリを含めることができます。同じアプリを複数の Django プロジェクトに含めることができます。
Visual Studio プロジェクトには、複数のアプリと共に Django プロジェクトを含めることができます。 このチュートリアル シリーズでは、"project" という用語は Visual Studio プロジェクトを指します。 コンテンツが Web アプリケーションの "Django プロジェクト" 部分を参照する場合、具体的には "Django プロジェクト" を参照します。
Visual Studio プロジェクトとソリューションを作成する
このチュートリアル シリーズの手順 1 では、複数の Django プロジェクトを含む 1 つの Visual Studio ソリューションを作成します。 各プロジェクトには、1 つの Django アプリが含まれています。 Visual Studio に含まれるさまざまな Django プロジェクト テンプレートを使用して、プロジェクトを作成します。 プロジェクトを同じソリューションに維持することで、比較のために異なるファイル間を簡単に切り替えることができます。
コマンド ラインから Django を操作するときは、通常、 django-admin startproject <project_name>
コマンドを実行してプロジェクトを開始します。 Visual Studio では、 空の Django Web プロジェクト テンプレートは、Visual Studio プロジェクトとソリューション内で同じ構造を提供します。
ソリューションとプロジェクトを作成するには、次の手順に従います。
Visual Studio で、[ ファイル>新規作成>プロジェクト ] を選択し、"Django" を検索します。次に、 空の Django Web プロジェクト テンプレートを選択し、[ 次へ] を選択します。
新しいプロジェクトとソリューションを構成します。
Visual Studio プロジェクトの 名前 を BasicProject に設定します。 この名前は、Django プロジェクトにも使用されます。
ソリューションとプロジェクトを保存する Visual Studio の 場所 を指定します。
[ ソリューションとプロジェクトを同じディレクトリに配置する] オプションを オフにします。
ソリューション名を LearningDjango に設定します。 このソリューションは、このチュートリアル シリーズの複数のプロジェクトのコンテナーとして機能します。
を選択してを作成します。
しばらくすると、プロジェクト "BasicProject" で検出されたプロンプト Python パッケージ仕様ファイル "requirements.txt" が Visual Studio に表示されます。
ダイアログは、選択したテンプレートに、プロジェクトの仮想環境の作成に使用できる requirements.txt ファイルが含まれていることを示します。
右側にある X を選択してプロンプトを閉じます。 このチュートリアルの後半では、仮想環境を作成し、ソース管理によって環境が除外されるようにします。 (環境は、 requirements.txtファイルから 後でいつでも作成できます)。
Visual Studio で、[ ファイル>新規作成>プロジェクト ] を選択し、"Django" を検索します。次に、 空の Django Web プロジェクト テンプレートを選択します。 (テンプレートは、Python の下のダイアログにも表示されます>左側の一覧の Web。
ダイアログの下部で、新しいプロジェクトとソリューションを構成します。
Visual Studio プロジェクトの 名前 を BasicProject に設定します。 この名前は、Django プロジェクトにも使用されます。
ソリューションとプロジェクトを保存する Visual Studio の 場所 を指定します。
ソリューション名を LearningDjango に設定します。 このソリューションは、このチュートリアル シリーズの複数のプロジェクトのコンテナーとして機能します。
[ ソリューションのディレクトリの作成 ] オプション (既定) を選択します。
[ 新しい Git リポジトリの作成 ] オプションを選択します。 Visual Studio では、ソリューションの作成時にローカル Git リポジトリが作成されます。
このオプションが表示されない場合は、Visual Studio インストーラーを実行します。 [コード ツール] の [個々のコンポーネント] タブで、Git for Windows と GitHub Extension for Visual Studio のオプションを追加します。
[OK] を選択.
しばらくすると、Visual Studio にプロンプトが表示されます 。このプロジェクトには外部パッケージが必要です。
ダイアログは、選択したテンプレートに最新の Django 1.x パッケージを参照する requirements.txt ファイルが含まれていることを示します。 [ 必要なパッケージの表示 ] を選択すると、正確な依存関係を確認できます。
ダイアログを閉じる には、自分でインストール するオプションを選択します。 このチュートリアルの後半では、仮想環境を作成し、ソース管理によって環境が除外されるようにします。 (環境は、 requirements.txtファイルから 後でいつでも作成できます)。
Git コントロールを調べる
次の手順では、Git ソース管理に対する Visual Studio のサポートについて理解します。
Von Bedeutung
Visual Studio 2019 以降では、Git バージョン管理エクスペリエンスは既定でオンになっています。 チーム エクスプローラーとの比較の詳細については、Git とチーム エクスプローラーの比較に関するページを参照してください。
以前のバージョンの Visual Studio で引き続き チーム エクスプローラー を使用する場合は、 Tools>Options>Environment>Preview Features に移動し、[ 新しい Git ユーザー エクスペリエンス ] チェックボックスをオンにします。
プロジェクトをローカル ソース管理にコミットするには、Visual Studio メイン ウィンドウの右下にある [ ソース管理に追加 ] を選択し、 Git を選択します。
[ Git リポジトリの作成] ウィンドウが開き、新しいリポジトリを作成してプッシュできます。
リポジトリを作成すると、Visual Studio のメイン ウィンドウの右下に Git コントロール バーが表示されます。
Git コントロール バーには、左から右に、送信/受信コミットの数 (矢印 #/#)、コミットされていない変更の数 (鉛筆 #)、現在のブランチ名、および現在のリポジトリ名が表示されます。 Git コントロールは、メイン ツール バーの Git メニューでも使用できます。
Git コントロール バーで、変更 (鉛筆 #) を選択して [ Git の変更] ウィンドウを開きます。 表示>Git の変更 (Ctrl+O、Ctrl+G) を選択可能です。
このウィンドウには、コミットされていない変更 (隠し変更を含む) に関する詳細が表示されます。 新しく作成されたプロジェクトは既にソース管理に自動的にコミットされているため、保留中の変更は表示されません。
Git コントロール バーで、コミット (矢印 #/#) を選択し、[ すべてのコミットの表示] を選択します。
Git リポジトリ ウィンドウが開きます。 表示>Git リポジトリ (Ctrl+O、Ctrl+R) を選択することもできます。
このウィンドウには、左側のウィンドウに現在のリポジトリの詳細が表示され、右側のウィンドウに送信/受信コミットがある現在のブランチが表示されます。
ファイルの相違点ビューを表示するには、中央のウィンドウでコミットを選択します。 前のバージョンが左側に表示され、変更後のバージョンが右側に表示されます。 詳細には、変更作成者、変更コミッター、コミット メッセージも含まれます。
[新しいプロジェクト] ダイアログで [新しい Git リポジトリの作成] オプションを選択したため、作成プロセスが完了するとすぐに、プロジェクトは既にローカル ソース管理にコミットされています。 この手順では、Visual Studio の Git コントロールと、ソース管理を操作する チーム エクスプローラー ウィンドウについて理解します。
Visual Studio メイン ウィンドウの下部隅にある Git コントロールを確認します。 左から右に、これらのコントロールには、未プッシュのコミット (矢印 #)、未コミットの変更、リポジトリの名前、および現在のブランチが表示されます。
変更 (鉛筆 #) を選択すると、Visual Studio の [変更] ページでチーム エクスプローラー ウィンドウが開きます。 新しく作成されたプロジェクトは既にソース管理に自動的にコミットされているため、保留中の変更は表示されません。
Visual Studio のステータス バーでコミット (矢印 #) を選択し、チーム エクスプローラーで [同期] ページを開きます。 ローカル リポジトリしかないため、このページには、リポジトリを別のリモート リポジトリに発行するための簡単なオプションが用意されています。
独自のプロジェクトに必要なサービスを選択できます。 このチュートリアルでは、GitHub の使用方法を示します。このチュートリアルの完成したサンプル コードは 、Microsoft/python-sample-vs-learning-djangoリポジトリに保持されています。
いずれかの発行コントロールを選択すると、チーム エクスプローラーに詳細を求めるメッセージが表示されます。 たとえば、このチュートリアルのサンプルを発行すると、リポジトリ自体が最初に作成され、リポジトリの URL で [ リモート リポジトリにプッシュ ] オプションが使用されます。
既存のリポジトリがない場合は、[ GitHub に発行してAzure DevOps にプッシュ ] オプションを使用すると、Visual Studio 内から直接作成できます。
ヒント
チーム エクスプローラー内をすばやく移動するには、[変更] または [プッシュ] ヘッダーを選択して、使用可能なページのポップアップ メニューを表示します。
このチュートリアル シリーズを進める際に、Visual Studio で Git コントロールを定期的に使用して変更をコミットしてプッシュする習慣を身に付けます。 チュートリアルの手順が適切なタイミングで思い出させてくれます。
最初からソース管理を使用する
プロジェクトの先頭からソース管理を使用するには、いくつかの利点があります。 プロジェクトの開始時からソース管理を使用する場合、特にリモート リポジトリも使用する場合は、プロジェクトの定期的なオフサイト バックアップを取得します。 ローカル ファイル システム上でのプロジェクトの保守とは異なり、ソース管理では、完全な変更履歴と、1 つのファイルまたはプロジェクト全体を以前の状態に簡単に戻す機能も提供されます。 変更履歴は、回帰 (テストエラー) の原因を特定するのに役立ちます。
ソース管理は、1 つのプロジェクトで複数のユーザーが作業している場合に不可欠です。これは、上書きを管理し、競合の解決を提供するためです。 ソース管理は基本的に自動化の一種であり、ビルド、テスト、リリース管理の自動化に適しています。 これはプロジェクトに Azure DevOps を使用する最初の手順であり、エントリの障壁が非常に低いため、最初からソース管理を使用しない理由はありません。
自動化としてのソース管理の詳細については、「 The Source of Truth: The Role of Repositories in DevOps」(DevOps におけるリポジトリの役割) を参照してください。これは、Web アプリにも適用されるモバイル アプリ向けに作成された MSDN Magazine の記事です。
Visual Studio によるプロジェクトの自動コミットを禁止する
Visual Studio で新しいプロジェクトが自動コミットされないようにするには、次の手順に従います。
ツール>Options>Source コントロール>Git グローバル設定を選択します。
既定では、[マージ後に変更をコミットする] オプションをオフにして、[OK] を選択します。
チーム エクスプローラーで [設定] ページを開き、Git>Global 設定を選択します。
既定では、[マージ後に変更をコミットする] オプションをオフにして、[更新] を選択します。
仮想環境を作成し、ソース管理を除外する
プロジェクトのソース管理を構成したら、プロジェクトに必要な Django パッケージを使用して仮想環境を作成できます。 その後、[ Git の変更] ウィンドウを使用して、ソース管理から環境のフォルダーを除外できます。
ソリューション エクスプローラーで、[Python 環境] ノードを右クリックし、[環境の追加] を選択します。
[ 環境の追加 ] ダイアログで、[ 作成 ] を選択して既定値をそのまま使用します。 (必要に応じて仮想環境の名前を変更できます。サブフォルダーの名前は変更されますが、
env
は標準的な規則です)。Visual Studio で管理者特権の入力を求めるメッセージが表示された場合は、同意を入力します。 Visual Studio がパッケージをダウンロードしてインストールするまで数分待ちます。 Django とその依存関係の場合、このプロセスでは、100 を超えるサブフォルダーに 1,000 個近くのファイルを展開する必要があります。 進行状況は、Visual Studio の [出力] ウィンドウで確認できます。
Git コントロール バーで、コミットされていない変更 (現在 は 99 以上) を選択して、 Git の [変更] ウィンドウを開きます。
仮想環境を作成すると、何千もの変更が加えられますが、ソース管理に含める必要はありません。 プロジェクトを複製するユーザーまたは他のユーザーは、 requirements.txt ファイルを使用していつでも環境を再作成できます。
ソース管理から仮想環境を除外するには、[ Git の変更] ウィンドウで env フォルダーを右クリックし、[ 次のローカル項目を無視する] を選択します。
仮想環境を除外した後、残りの変更はプロジェクト ファイル (.py) と .gitignore ファイルのみです。これには、仮想環境フォルダーの追加エントリが含まれます。
.gitignore ファイルの相違点ビューを表示するには、[Git の変更] ウィンドウでファイルをダブルクリックします。
[Git Changes]\( Git の変更\) ウィンドウで、"初期プロジェクトの変更" などのコミット メッセージを入力します。
[ コミット ] ドロップダウン メニューで、[ Commit Staged and Push]\(ステージングおよびプッシュのコミット\) を選択します。
Git リポジトリ ウィンドウを開き、ステージングされたコミットが現在のブランチのローカル履歴に表示されたことを確認できます。
プロジェクトのソース管理を構成したら、プロジェクトに必要な Django パッケージを使用して仮想環境を作成できます。 その後、 チーム エクスプローラー を使用して、ソース管理から環境のフォルダーを除外できます。
ソリューション エクスプローラーで、[Python 環境] ノードを右クリックし、[仮想環境の追加] を選択します。
[ 仮想環境の追加] ダイアログが開き、メッセージが表示されます。 requirements.txt ファイルが見つかりました。 このメッセージは、Visual Studio がファイルを使用して仮想環境を構成することを示しています。
既定値をそのまま使用するには、[ 作成 ] を選択します。 (必要に応じて仮想環境の名前を変更できます。サブフォルダーの名前は変更されますが、
env
は標準的な規則です)。Visual Studio で管理者特権の入力を求めるメッセージが表示された場合は、同意を入力します。 Visual Studio がパッケージをダウンロードしてインストールするまで数分待ちます。 Django とその依存関係の場合、このプロセスでは、100 を超えるサブフォルダーに 1,000 個近くのファイルを展開する必要があります。 進行状況は、Visual Studio の [出力] ウィンドウで確認できます。
Git コントロール バーで、コミットされていない変更 (現在は 99 以上) を選択して、チーム エクスプローラーで [Git の変更] ページを開きます。
仮想環境を作成すると、何千もの変更が加えられますが、ソース管理に含める必要はありません。 プロジェクトを複製するユーザーまたは他のユーザーは、 requirements.txt ファイルを使用していつでも環境を再作成できます。
ソース管理から仮想環境を除外するには、[ 変更 ] ページで env フォルダーを右クリックし、[ 次のローカル項目を無視する] を選択します。
仮想環境を除外した後、残りの変更はプロジェクト ファイル (.py) と .gitignore ファイルのみです。これには、仮想環境フォルダーの追加エントリが含まれます。
.gitignore ファイルの相違点ビューを表示するには、ファイルをダブルクリックします。
コミット メッセージを入力し、[ すべてコミット] を選択し、必要に応じてコミットをリモート リポジトリにプッシュします。
仮想環境の目的を理解する
仮想環境は、アプリケーションの正確な依存関係を分離する優れた方法です。 この分離方法は、グローバル Python 環境内での競合を回避し、テストとコラボレーションの両方を支援します。 時間の経過と共に、アプリを開発する際には、多くの役に立つ Python パッケージを必ず取り込みます。 パッケージをプロジェクト固有の仮想環境に保持することで、ソース管理に含まれるその環境を記述するプロジェクトの requirements.txt ファイルを簡単に更新できます。 ビルド サーバー、配置サーバー、その他の開発用コンピューターなど、他のコンピューターにプロジェクトをコピーすると、環境を簡単に再作成できます。 requirements.txt ファイルのみを使用して環境を再作成できます。そのため、環境をソース管理にする必要はありません。 詳細については、「 仮想環境の使用」を参照してください。
ソース管理下の仮想環境を削除する
仮想環境は、ソース管理下にある後で削除できます。 次の手順に従います。
.gitignore ファイルを編集してフォルダーを除外します。
ファイル>開く>ファイル を選択してファイルを開きます。
チーム エクスプローラーからファイルを開くこともできます。 [ 設定] ページで、[ リポジトリの設定] を選択します。 [無視] および [属性ファイル] セクションに移動し、[.gitignore] の横にある [編集] リンクを選択します。
コメントが
# Python Tools for Visual Studio (PTVS)
されているセクションを最後に見つけます。そのセクションの後に、仮想環境フォルダーの新しい行 (
/BasicProject/env
など) を追加します。
コマンド ウィンドウを開き、仮想環境フォルダー (env など) を含むフォルダー (BasicProject など) に移動します。
git rm -r env
コマンドを実行して、現在ソース管理下にある仮想環境を削除します。git commit -m 'Remove venv'
コマンドを使用して変更をコミットするか、チーム エクスプローラーの [変更] ページから変更をコミットします。
定型コードを調べる
このセクションでは、テンプレートの選択に基づいて Visual Studio によって作成されるプロジェクト ファイル (.py) の定型コードを調べます。
注
定型コードは、Django テンプレートから Visual Studio でプロジェクトを作成する場合でも、CLI コマンド django-admin startproject <project_name>
を使用してプロジェクトを生成する場合でも同じです。
ソリューション エクスプローラーを開き、ソリューションとプロジェクト ファイルを表示します。 最初のプロジェクトには、 manage.py とrequirements.txt の 2 つのファイルのみが含 まれています 。
requirements.txt ファイルは、Django パッケージの依存関係を指定します。 このファイルが存在すると、最初にプロジェクトを作成するときに仮想環境を作成するよう招待されます。
manage.py ファイルは、Visual Studio によってプロジェクトのスタートアップ ファイルとして自動的に設定される Django コマンド ライン管理ユーティリティです。 コマンド ラインでユーティリティを実行する場合は、コマンド
python manage.py <command> [options]
使用します。一般的な Django タスクの場合、Visual Studio には便利なメニュー コマンドが用意されています。 ソリューション エクスプローラーでプロジェクトを右クリックし、Python を選択してコマンドの一覧を表示します。 このチュートリアル シリーズでは、これらのコマンドのいくつかを使用します。
2 つのファイルに加えて、プロジェクトにはプロジェクトと同じ名前のサブフォルダーもあります。 このフォルダーには、基本的な Django プロジェクト ファイルが含まれています。
- __init__.py: このフォルダーが Python パッケージであることを Python に通知する空のファイル。
- settings.py: Web アプリの開発時に変更する Django プロジェクトの設定。
- urls.py: Django プロジェクトの目次。Web アプリの開発時に変更します。
- wsgi.py: WSGI と互換性のある Web サーバーがプロジェクトに対応するためのエントリ ポイント。 通常、このファイルは運用 Web サーバーのフックを提供するため、as-is のままにしておきます。
パッケージのインストール後に要件を生成する
Visual Studio では、他のパッケージをインストールした後、仮想環境から requirements.txt ファイルを生成できます。
- ソリューション エクスプローラーで、[Python 環境] ノードを展開し、仮想環境を右クリックし、[requirements.txtの生成] を選択します。
環境を変更するときは、このコマンドを定期的に使用することをお勧めします。 requirements.txt ファイルの変更を、その環境に依存するその他のコード変更と共にソース管理にコミットします。 ビルド サーバーで継続的インテグレーションを設定する場合は、環境を変更するたびにファイルを生成して変更をコミットする必要があります。
プロジェクトを実行する
これで、次の手順に従って Visual Studio でプロジェクトを実行する準備ができました。
Visual Studio で、 デバッグ>デバッグの開始 (F5) を選択するか、メイン ツール バーの Web サーバー を選択します (表示されるブラウザーは異なる場合があります)。
どちらのコマンドでも、Django で組み込みの Web サーバーを起動するコマンド
manage.py runserver <port>
を使用してサーバーを実行します。コードは、Django 開発サーバー内の指定されたポートを使用してアプリケーションを起動します。
Visual Studio がデバッガーの起動に失敗したというメッセージを投稿し、スタートアップ ファイルが見つからない場合は、ソリューション エクスプローラーで manage.py ファイルを右クリックし、[スタートアップ ファイルとして設定] を選択します。
サーバーが起動すると、コンソール ウィンドウが開き、サーバー ログが表示されます。 Visual Studio によってブラウザーが自動的に開かれ、
http://localhost:<port>
にアクセスされます。 Django プロジェクトにはアプリがないため、Django には既定のページのみが表示され、現在のコードが期待どおりに動作していることを確認できます。完了したら、コンソール ウィンドウを閉じて、Django 開発サーバーを停止します。 [デバッグ]>[デバッグの停止]を選択することもできます。
Django Web サーバーとフレームワークを使用する
Django には、開発目的で使用できる組み込みの Web サーバーがあります。 Django Web アプリをローカルで実行するときは、組み込みの Django Web 開発サーバーを使用します。 このシナリオの例として、Visual Studio で Django Web アプリをデバッグする場合があります。
Django Web アプリを Web ホストにデプロイするときは、組み込みの Django Web サーバーではなく、ホスト上の Web サーバーを使用します。 Django プロジェクトの wsgi.py モジュールは、運用サーバーへのフックを処理します。
Debug コマンドとプロジェクト Python コマンドを比較する
[デバッグ] メニュー コマンドと、プロジェクトの Python サブメニューに一覧表示されているサーバー コマンドの使用には違いがあります。
[デバッグ] メニュー コマンドとツール バー ボタンに加えて、プロジェクトのコンテキスト メニューで Python>Start サーバーまたは Python>Start デバッグ サーバー コマンドを使用してサーバーを起動することもできます。
[デバッグ] メニュー コマンドとツール バー ボタンに加えて、プロジェクトのコンテキスト メニューで Python>Run サーバーまたは Python>Run デバッグ サーバー コマンドを使用してサーバーを起動することもできます。
どちらのコマンドでもコンソール ウィンドウが開き、実行中のサーバーのローカル URL (localhost:port
) が表示されます。 ただし、その URL を使用してブラウザーを手動で開く必要があり、デバッグ サーバーを実行しても Visual Studio デバッガーは自動的に起動されません。
Debug>Attach to Process コマンドを使用して、後で実行中のプロセスにデバッガーをアタッチできます。