Python Web アプリケーション プロジェクト テンプレート

Visual Studio の Python は、さまざまなフレームワークを処理するように構成できるプロジェクト テンプレートとデバッグ ランチャーにより、Bottle、Flask、Django などのフレームワークでの Web プロジェクトの開発をサポートします。 これらのテンプレートには、必要な依存関係を宣言する requirements.txt が含まれています。 これらのテンプレートのいずれかからプロジェクトを作成すると、Visual Studio はこの記事で後述する「インストール要件」で説明している依存パッケージをインストールするように求めます。

Pyramid などの他のフレームワークには、汎用の Web プロジェクト テンプレートを使用できます。 この場合、フレームワークはテンプレートと一緒にインストールされません。 代わりに、必要なパッケージをプロジェクトに使用している環境にインストールします。 詳細については、「[Python 環境] ウィンドウ - [パッケージ] タブ」を参照してください。

プロジェクト テンプレートのオプション

テンプレートからプロジェクトを作成するには、ツールバー メニューから [ファイル]>[新規作成]>[プロジェクト] を選択します。 [新しいプロジェクトの作成] ダイアログで、テンプレートの一覧をフィルター処理して、Python Web プロジェクトに使用できるオプションを表示できます。 [検索] ボックスに主な用語を入力するか、フィルター ドロップダウン メニューを使用して言語として [Python] を選択し、プロジェクトの種類として [Web] を選択します。

Visual Studio にある Python Web アプリ用のテンプレートのオプションを表示するようにフィルタリングされた [新しいプロジェクトの作成] ダイアログのスクリーンショット。

テンプレートを選択した後、プロジェクトとソリューションの名前を指定し、ソリューション ディレクトリと Git リポジトリのオプションを設定します。

汎用の [Web プロジェクト] テンプレートは、コードなしの空の Visual Studio プロジェクトのみを提供し、Python プロジェクトであること以外は想定しません。 その他のテンプレートは、Bottle、Flask、または Django の Web フレームワークに基づいており、次のセクションで説明する 3 つのカテゴリにグループ分けされます。 このようなテンプレートのいずれかで作成されたアプリには、アプリをローカルで実行およびデバッグするのに必要なコードが含まれています。 また、各テンプレートは、運用環境の Web サーバーで使用するために必要な WSGI アプリ オブジェクト (python.org) も提供します。

空白のグループ

Blank <framework> Web プロジェクト テンプレートはいずれも、ほぼ最小限の定型コードと、requirements.txt ファイルに宣言されている必要な依存関係を使用してプロジェクトを作成します。

テンプレート 説明
Blank Bottle Web プロジェクト 短いインライン ページ テンプレートを使用して、/ 場所のホーム ページと、<name> 値を送り返す /hello/<name> ページを備えた最小限のアプリを app.py ファイル内に生成します。
空の Django Web プロジェクト コア Django サイト構造を持つが Django アプリが含まれない Django プロジェクトを生成します。 詳細については、Django テンプレートに関する記事と Django 手順 1に関する記事を参照してください。
Blank Flask Web プロジェクト / 場所の 1 つの "Hello World!" ページを備えた最小限のアプリを生成します。 このアプリは、クイック スタート: Visual Studio を使用して初めての Python Web アプリを作成に関する記事で詳細説明した手順を実行して得られた結果と類似しています。 詳細については、「Flask の詳細情報の手順 1」を参照してください。

Web グループ

すべての <Framework> Web プロジェクト テンプレートはいずれも、選択したフレームワークに関係なく同一の設計によるスタート Web アプリを作成します。 このアプリにはホーム ページ、[バージョン情報] ページ、[連絡先] ページがあり、ナビゲーション メニュー バー、およびブートス トラップを使用する応答性に優れたデザインが採用されます。 各アプリはサーバーの静的ファイルに対して適切に構成され (CSS、JavaScript、フォント)、各アプリではフレームワークに適したページ テンプレート メカニズムが使用されます。

テンプレート 説明
Bottle Web プロジェクト 静的ファイルが static フォルダーに含まれていて、app.py ファイル内のコードを通して処理されるアプリを生成します。 個々のページのルーティングは、routes.py ファイルに含まれています。 views フォルダーには、ページ テンプレートが含まれています。
Django Web プロジェクト 3 つのページ、認証サポート、および SQLite データベース (データ モデルはなし) を使用して Django プロジェクトと Django アプリを生成します。 詳細については、Django テンプレートに関する記事と Django 手順 4 に関する記事を参照してください。
Flask Web プロジェクト 静的ファイルが static フォルダーに含まれていているアプリを生成します。 views.py ファイル内のコードによってルーティングが処理され、Jinja エンジンを使用するページ テンプレートが templates フォルダーに含まれています。 runserver.py ファイルはスタートアップ コードを提供します。

インストール要件

フレームワーク固有のテンプレートからプロジェクトを作成する際は、pip を使用して必要なパッケージをインストールするためのダイアログが Visual Studio によって表示されます。 Web サイトの公開時に正しい依存関係が含まれるように、Web プロジェクト用の仮想環境を使用することもお勧めします。

Visual Studio にあるプロジェクト テンプレートのパッケージのインストール時に表示されるダイアログのスクリーンショット。

ソース管理を使用している場合、仮想環境は requirements.txt ファイルのみを使用して再作成できるため、仮想環境フォルダーは通常は省略します。 そのフォルダーを除外する最良の方法は、まず [I will install them myself] (自分でインストールする) オプションを選択し、仮想環境を作成する前に自動コミットを無効にすることです。 詳細については、チュートリアルにある Django の詳細情報の 「手順 1-2: Git コントロールを確認し、リモート リポジトリに発行する」と Flask の詳細情報をご覧ください。

Microsoft Azure App Service にデプロイするには、Python のバージョンとして[サイト拡張機能] を選択し、パッケージを手動でインストールします。 また、Azure App Service は、Visual Studio からデプロイされるときに requirements.txt ファイルからパッケージを自動的にインストールしないため、aka.ms/PythonOnAppService の構成の詳細に従ってください。

デバッグのオプション

デバッグのために Web プロジェクトを開くと、Visual Studio はローカル Web サーバーをランダムなポート上で起動し、そのアドレスとポートを既定のブラウザーで開きます。 さらにオプションを指定するには、ソリューション エクスプローラーでプロジェクトを右クリックし、[プロパティ] を選択します。 [プロパティ] ページで、[デバッグ] タブを選択します。

Visual Studio で、汎用的な Web テンプレート用の Web ランチャーのプロパティが表示されている様子のスクリーンショット。

プロジェクトをデバッグするための一般的な構成オプションには、3 つのグループがあります。 [Run] (実行) グループには、次のプロパティがあります。

  • [検索パス][スクリプトの引数][インタープリターの引数]、および [インタープリター パス] オプションは、通常のデバッグの場合と同じです。
  • [起動 URL] は、ブラウザーで開く URL を指定します。 既定の場所は localhost です。
  • [ポート番号] は、URL に何も指定されなかった場合に使用するポートを特定します (既定では、Visual Studio によって自動的に選択されます)。 この設定により、ローカル デバッグ サーバーがどのポートをリッスンするかを構成するためにテンプレートで使用される環境変数 SERVER_PORT の既定値をオーバーライドできます。
  • [環境] 一覧は、スポーンされたプロセスで設定する変数を定義します。 形式は、<NAME>=<VALUE> ペアの改行区切りのリストです。

[Run Server Command (サーバー コマンドの実行)] および [Debug Server Command (サーバー コマンドのデバッグ)] グループのプロパティによって、Web サーバーの起動方法が決まります。 多くのフレームワークでは、現在のプロジェクトの外部のスクリプトを使用する必要があるため、スクリプトをここで構成でき、スタートアップ モジュールの名前をパラメーターとして渡すことができます。

  • [コマンド] は、Python スクリプト (*.py ファイル)、モジュール名 (python.exe -m module_name など)、または 1 行のコード (python.exe -c "code" など) にすることができます。 ドロップダウン ボックスの値は、どの種類が対象であるかを示します。
  • [引数] のリストは、コマンド ラインでコマンドに続いて渡されます。
  • ここでも、[環境] の一覧は、ポート番号や検索パスなど、環境を変更する可能性があるすべてのプロパティの後に設定する変数を定義します。 これらの変数値は、他のプロパティ値を上書きできます。

すべてのプロジェクト プロパティまたは環境変数は、$(StartupFile) --port $(SERVER_PORT) のように MSBuild 構文で指定できます。 $(StartupFile) はスタートアップ ファイルの相対パスで、{StartupModule} はスタートアップ ファイルのインポート可能な名前です。 $(SERVER_HOST)$(SERVER_PORT) は、[起動 URL] プロパティと [ポート番号] プロパティによって自動的に設定されるか、[環境] プロパティによって設定される通常の環境変数です。

Note

[Run Server Command] (サーバー コマンドの実行) の値は、[デバッグ]>[Start Server] (サーバーの起動) コマンド、またはキーボード ショートカットの Ctrl+F5 で使用されます。 [Debug Server Command (サーバー コマンドのデバッグ)] グループの値は、[デバッグ]>[Start Debug Server (デバッグ サーバーの起動)] コマンド、または F5 で使用されます。

サンプルの Bottle 構成

Bottle Web プロジェクト テンプレートには、必要な構成を実行する定型コードが含まれています。 ただし、インポートされた bottle アプリにはこのコードが含まれていない場合があります。その場合、次の設定はインストールされた bottle モジュールを使用してアプリを起動します。

  • [Run Server Command (サーバー コマンドの実行)] グループ:

    • [コマンド]: bottle (モジュール)
    • [引数] : --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app
  • [Debug Server Command (サーバー コマンドのデバッグ)] グループ:

    • [コマンド]: bottle (モジュール)
    • 引数--debug --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app

デバッグに Visual Studio を使用する場合、--reload オプションは推奨されません。

サンプルの Pyramid 構成

Pyramid アプリは現在、pcreate コマンドライン ツールを使用して作成するのが最適です。 作成したアプリは、[既存の Python コードから] テンプレートを使用してインポートできます。 インポートが完了した後、[Generic Web Project (汎用 Web プロジェクト)] カスタマイズを選択してオプションを構成します。 これらの設定は、Pyramid が ..\env の場所にある仮想環境にインストールされていることを想定しています。

  • [Run] (実行) グループ:

    • [ポート番号]: 6543 (または .ini ファイルで構成されているポート)
  • [Run Server Command (サーバー コマンドの実行)] グループ:

    • コマンド: ..\env\scripts\pserve-script.py (スクリプト)
    • 引数: Production.ini
  • [Debug Server Command (サーバー コマンドのデバッグ)] グループ:

    • コマンド: ..\env\scripts\pserve-script.py (スクリプト)
    • 引数: Development.ini

ヒント

Pyramid アプリのフォルダーは、通常、プロジェクト ルートの 1 レベル下に位置するため、プロジェクトの [作業ディレクトリ] プロパティを構成することが必要な場合があります。

その他の構成

別のフレームワークの設定を共有する場合、または別のフレームワークの設定を要求する場合は、GitHub で懸案事項を開きます。