Visual Studio の Python では、さまざまなフレームワークを処理するように構成できるプロジェクト テンプレートとデバッグランチャーを使用して、Bottle、Flask、Django フレームワークでの Web プロジェクトの開発をサポートしています。 これらのテンプレートには、必要な依存関係を宣言するための requirements.txt ファイルが含まれています。 これらのテンプレートの 1 つからプロジェクトを作成すると、この記事で後述する 「インストール要件 」で説明するように、依存パッケージのインストールが求められます。
ピラミッドなどの他のフレームワークには、汎用 Web プロジェクト テンプレートを使用することもできます。 この場合、テンプレートと共にフレームワークはインストールされません。 代わりに、プロジェクトに使用している環境に必要なパッケージをインストールします。 詳細については、「 Python 環境」ウィンドウの「パッケージ」タブを参照してください。
プロジェクト テンプレートのオプション
テンプレートからプロジェクトを作成するには、ツール バー メニューから [ファイル>新規作成>プロジェクト ] を選択します。 [ 新しいプロジェクトの作成 ] ダイアログで、テンプレートの一覧をフィルター処理して、Python Web プロジェクトで使用できるオプションを表示できます。 [検索] ボックスにキー用語を入力するか、フィルター ドロップダウン メニューを使用して言語として Python を選択し、プロジェクトの種類として Web を選択します。
テンプレートを選択したら、プロジェクトとソリューションの名前を指定し、ソリューション ディレクトリと Git リポジトリのオプションを設定します。
一般的な Web プロジェクト テンプレートは、コードを含まない空の Visual Studio プロジェクトを提供し、Python プロジェクトである以外の前提はありません。 その他のテンプレートは、Bottle、Flask、または Django の Web フレームワークに基づいており、次のセクションで説明するように 3 つのカテゴリにグループ化されています。 これらのテンプレートのいずれかで作成されたアプリには、アプリをローカルで実行およびデバッグするための十分なコードが含まれています。 各テンプレートには、運用 Web サーバーで使用するために必要な WSGI アプリ オブジェクト (python.org) も用意されています。
空白のグループ
空白の <framework> Web プロジェクト テンプレートは、多かれ少なかれ最小限の定型コードと、requirements.txt ファイルで宣言されている必要な依存関係を含むプロジェクトを作成します。
| Template | Description |
|---|---|
| ブランク ボトル Web プロジェクト | app.py ファイル内に、/ロケーションのホームページと、短いインラインページテンプレートを使用して<name>値をエコーする/hello/<name>ページとを備えた最小限のアプリを生成します。 |
| 空の Django Web プロジェクト | Django サイトのコア構造を持つ Django プロジェクトを生成しますが、Django アプリは生成しません。 詳細については、 Django テンプレート と Learn Django 手順 1 を参照してください。 |
| 空の Flask Web プロジェクト |
/の場所に対して 1 つの "Hello World!" ページを含む最小限のアプリを生成します。 このアプリは、「 クイック スタート: Visual Studio を使用して最初の Python Web アプリを作成する」の詳細な手順に従った結果に似ています。 詳細については、「 Learn Flask Step 1」を参照してください。 |
Web グループ
すべての<Framework> Web プロジェクト テンプレートは、選択したフレームワークに関係なく、同じデザインのスターター Web アプリを作成します。 このアプリには、ホーム、バージョン情報、連絡先の各ページと、ブートストラップを使用するナビゲーション メニュー バーとレスポンシブ デザインがあります。 各アプリは、静的ファイル (CSS、JavaScript、フォント) を提供するように適切に構成され、フレームワークに適したページ テンプレート メカニズムを使用します。
| Template | Description |
|---|---|
| Bottle Web プロジェクト | 静的ファイルが 静的フォルダーに 格納され、 app.py ファイル内のコードによって処理されるアプリを生成します。 個々のページのルーティングは、 routes.py ファイルに含まれています。 views フォルダーには、ページ テンプレートが含まれています。 |
| Django Web プロジェクト | 3 つのページ、認証のサポート、SQLite データベース (データ モデルは含まない) を含む Django プロジェクトと Django アプリを生成します。 詳細については、 Django テンプレート と Learn Django 手順 4 を参照してください。 |
| Flask Web プロジェクト | 静的 ファイルが 静的フォルダーに格納されているアプリを生成します。 views.py ファイル内のコードは、templates フォルダーに含まれる Jinja エンジンを使用するページ テンプレートを使用してルーティングを処理します。 runserver.py ファイルはスタートアップ コードを提供します。 |
インストール要件
フレームワーク固有のテンプレートからプロジェクトを作成すると、pip を使用して必要なパッケージをインストールするためのダイアログが Visual Studio に表示されます。 また、Web サイトを発行するときに正しい依存関係が含まれるように、Web プロジェクトに 仮想環境 を使用することをお勧めします。
ソース管理を使用する場合は、通常、 requirements.txt ファイルのみを使用してその環境を再作成できるため、仮想環境フォルダーは省略します。 フォルダーを除外する最善の方法は、最初に [ 自分でインストール する] オプションを選択してから、仮想環境を作成する前に自動コミットを無効にすることです。 詳細については、Learn Django チュートリアルと Learn Flask チュートリアルの Git コントロールを確認するを参照してください。
Microsoft Azure App Service にデプロイする場合は、 サイト拡張機能 として Python のバージョンを選択し、パッケージを手動でインストールします。 また、Visual Studio からデプロイした場合、Azure App Service は requirements.txt ファイルからパッケージを自動的にインストールしないため、aka.ms/PythonOnAppService の構成の詳細に従います。
デバッグ オプション
デバッグ用の Web プロジェクトを開くと、Visual Studio はランダムなポートでローカル Web サーバーを起動し、そのアドレスとポートに対して既定のブラウザーを開きます。 その他のオプションを指定するには、 ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択 します。 [ プロパティ ] ページで、[ デバッグ ] タブを選択します。
プロジェクトをデバッグするための一般的な構成オプションには、3 つのグループがあります。 実行グループには、次のプロパティが含まれています。
- 検索パス、スクリプト引数、インタープリター パス、インタープリター引数のオプションは、通常のデバッグの場合と同じです。
-
起動 URL は、ブラウザーで開く URL を指定します。 既定の場所は
localhostです。 - ポート 番号 は、URL に何も指定されていない場合に、使用するポートを識別します (Visual Studio では既定で自動的に選択されます)。 この設定では、ローカル デバッグ サーバーがリッスンするポートを構成するためにテンプレートによって使用される、
SERVER_PORT環境変数の既定値をオーバーライドできます。 -
環境リストは、生成されたプロセスで設定する変数を定義します。 この形式は、
<NAME>=<VALUE>ペアの改行で区切られたリストです。
[サーバー コマンドの実行] グループと [サーバー コマンドのデバッグ] グループのプロパティによって、Web サーバーの起動方法が決まります。 多くのフレームワークでは、現在のプロジェクトの外部でスクリプトを使用する必要があるため、ここでスクリプトを構成でき、スタートアップ モジュールの名前をパラメーターとして渡すことができます。
-
コマンドには、Python スクリプト (*.py ファイル)、モジュール名 (in、
python.exe -m module_nameなど)、または 1 行のコード (python.exe -c "code"など) を指定できます。 ドロップダウン ボックスの値は、目的の型を示します。 - 引数の一覧は、コマンド ラインでコマンドの後に渡されます。
- ここでも、 環境 の一覧では、ポート番号や検索パスなど、環境を変更する可能性があるすべてのプロパティの後に設定する変数を定義します。 これらの変数値は、他のプロパティ値を上書きできます。
$(StartupFile) --port $(SERVER_PORT)など、MSBuild 構文を使用して、任意のプロジェクト プロパティまたは環境変数を指定できます。
$(StartupFile) はスタートアップ ファイルの相対パスであり、 {StartupModule} はスタートアップ ファイルのインポート可能な名前です。
$(SERVER_HOST) および $(SERVER_PORT) は、 起動 URL と ポート番号 のプロパティ、自動的に、または Environment プロパティによって設定される通常の環境変数です。
注
サーバーの実行コマンドの値は、Debug>Start Server コマンドまたはキーボード ショートカット Ctrl+F5 と共に使用されます。 デバッグ サーバー コマンド グループの値は、Debug>Start Debug Server コマンドまたは F5 と共に使用されます。
サンプル ボトルの構成
Bottle Web プロジェクト テンプレートには、必要な構成を行う定型コードが含まれています。 インポートされたボトル アプリにはこのコードが含まれていない場合がありますが、その場合、次の設定では、インストールされている bottle モジュールを使用してアプリが起動されます。
サーバー コマンド グループを実行します 。
-
コマンド:
bottle(モジュール) -
引数:
--bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app
-
コマンド:
デバッグ サーバー コマンド グループ:
-
コマンド:
bottle(モジュール) -
引数
--debug --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app
-
コマンド:
デバッグに Visual Studio を使用する場合、 --reload オプションは推奨されません。
ピラミッド構成のサンプル
現在、ピラミッド アプリは、 pcreate コマンドライン ツールを使用して最適に作成されます。 アプリを作成した後は、 既存の Python コード テンプレートを使用してインポートできます。 インポートが完了したら、 汎用 Web プロジェクト のカスタマイズを選択してオプションを構成します。 これらの設定は、Pyramid が ..\env の場所にある仮想環境にインストールされていることを前提としています。
グループの実行 :
- ポート番号: 6543 (または .ini ファイルで構成されているもの)
サーバー コマンド グループを実行します 。
- コマンド:
..\env\scripts\pserve-script.py(スクリプト) - 引数:
Production.ini
- コマンド:
デバッグ サーバー コマンド グループ:
- コマンド:
..\env\scripts\pserve-script.py(スクリプト) - 引数:
Development.ini
- コマンド:
ヒント
ピラミッド アプリは通常、プロジェクト ルートの下の 1 つのフォルダーであるため、プロジェクトの 作業ディレクトリ プロパティを構成する必要がある可能性があります。
その他の構成
共有する別のフレームワークの設定がある場合、または別のフレームワークの設定を要求する場合は、 GitHub で問題を開きます。