クイック スタート: Visual Studio のテンプレートから Python プロジェクトを作成する

このクイックスタートでは、基本的な Flask アプリケーション用の組み込みテンプレートを使用することで、Python 向けの Visual Studio プロジェクトを、説明付きの手順に沿って作成します。 Visual Studio を使用すると、Python プロジェクトを、Flask、Django、Bottle を含む複数の Python フレームワークのテンプレートで定型コードと機能を使用して、簡単に開発できます。 この記事で説明されている Python プロジェクトは、「クイックスタート: Flask を使用して Web アプリを作成する」記事内の、手動で作成するプロジェクトと似ています。

前提条件

  • Python ワークロードをサポートする Visual Studio がインストールされていること。

    Visual Studio インストーラー内で、Web プロジェクト テンプレートにアクセスするための Python 開発ワークロード及び Python Web サポート オプションを選択します。 詳細については、「Visual Studio での Python サポートのインストール」をご覧ください。

    Python 開発ワークロードの Visual Studio インストーラー内で Python Web サポートを選択するための方法を示しているスクリーンショット。

Visual Studio for Mac はサポートされていません。 詳細については、「Visual Studio for Mac の現状」を参照してください。Windows、Mac、および Linux での Visual Studio Code は、利用可能な拡張機能を使用して Python コードを問題なく操作できます

プロジェクトを作成する

次の手順に沿って、Visual Studio ソリューション及び新しい Flask Web プロジェクトを作成します。

  1. Visual Studio で、[ファイル]>[新規]>[プロジェクト] を選択して、"Flask." を検索します。[空の Flask Web プロジェクト] テンプレートを選択して、[次へ] を選択します。

    Visual Studio 2022 内で [空の Flask Web プロジェクト] テンプレートを選択するための方法を示しているスクリーンショット。

  2. Visual Studio に、プロジェクト構成ダイアログが表示されます。 プロジェクトの [名前] を入力し、[作成] を選択します。 他のフィールドは、デフォルトのままにしておくことができます。

    Visual Studio 2022 内に新規プロジェクトを構成するための方法を示しているスクリーンショット。

  3. しばらくすると、Visual Studio に、パッケージの依存関係の処理方法に関するプロンプトが表示されます。 既にパッケージの依存関係がインストールされているかどうかによって、プロンプトが異なります。

    [このプロジェクトには外部パッケージが必要です] ダイアログは、選択したテンプレートに Flask パッケージへの依存関係を指定する requirements.txt ファイルが含まれていることを示します。 Visual Studio ではパッケージを自動的にインストールできるため、仮想環境にパッケージをインストールするためのオプションが提供されます。 グローバル環境へのインストールよりも、仮想環境の使用をお勧めします。

    このダイアログが表示されたら、[仮想環境へのインストール] オプションを選択します。

    必要なパッケージの依存関係を Visual Studio の仮想環境にインストールするためのプロンプトのスクリーンショット。

    または、 [プロジェクト <プロジェクト名>内に Python パッケージ仕様ファイル "requirements.txt" が検出されました。] というプロンプトが表示される場合があります。 このプロンプトは、パッケージの依存関係が、構成内で既に使用可能であることを示します。 Visual Studio では、既存の構成から必要な仮想環境を作成できます。

    このプロンプトが表示された場合は、[仮想環境の作成] オプションを選択します。

    プロジェクトの要件ファイルが Visual Studio で検出されたことを示しているプロンプトのスクリーンショット。

  4. Visual Studio に、[環境の追加] ダイアログが表示されます。 既定値をそのまま使用して、[作成] を選択し、続いて、昇格要求に同意します。

    Visual Studio 2022 内に Flask プロジェクトの仮想環境を追加するための方法を示しているスクリーンショット。

  1. Visual Studio で、 [ファイル]>[新規]>[プロジェクト] の順に選択します。

  2. [新しいプロジェクト] ダイアログ内で、"空の Flask" を検索します。 中央のリスト内で、空の Flask Web プロジェクト テンプレートを選択して、プロジェクト を入力し、[OK] を選択 します。

    [空の Flask Web プロジェクト] テンプレートを選択して、Visual Studio 内に新規の Flask アプリを作成するための方法を示しているスクリーンショット。

  3. すぐに、Visual Studio に、プロンプトが表示されます。

    [このプロジェクトには外部パッケージが必要です] ダイアログは、選択したテンプレートに Flask パッケージへの依存関係を指定する requirements.txt ファイルが含まれていることを示します。 Visual Studio ではパッケージを自動的にインストールできるため、仮想環境にパッケージをインストールするためのオプションが提供されます。 グローバル環境へのインストールよりも、仮想環境の使用をお勧めします。

    このダイアログが表示されたら、[仮想環境へのインストール] オプションを選択します。

    必要なパッケージの依存関係を Visual Studio の仮想環境にインストールするためのプロンプトのスクリーンショット。

    または、 [プロジェクト <プロジェクト名>内に Python パッケージ仕様ファイル "requirements.txt" が検出されました。] というプロンプトが表示される場合があります。 このプロンプトは、パッケージの依存関係が、構成内で既に使用可能であることを示します。 Visual Studio では、既存の構成から必要な仮想環境を作成できます。

    このプロンプトが表示された場合は、[仮想環境の作成] オプションを選択します。

    プロジェクトの要件ファイルが Visual Studio で検出されたことを示しているプロンプトのスクリーンショット。

  4. Visual Studio に、[環境の追加] ダイアログが表示されます。 既定値をそのまま使用して、[作成] を選択し、続いて、昇格要求に同意します。

    Visual Studio 内に Flask プロジェクトの仮想環境を追加する方法を示しているスクリーンショット。

ヒント

プロジェクトを開始するとき、すぐに仮想環境を作成することを強くお勧めします。ほとんどの Visual Studio テンプレートでそのように勧められます。 仮想環境では、時間の経過と共にライブラリを追加したり、削除したりしても、プロジェクトの厳密な要件が維持されます。 そのため、requirements.txt ファイルを簡単に生成できます。このファイルを利用し、(ソース管理を利用するとき) 他の開発コンピューターにそれらの依存関係を再インストールします。また、運用サーバーにプロジェクトを展開するときに再インストールします。 仮想環境とその長所については、「仮想環境を使用する」と「requirements.txt での必須パッケージの管理」をご覧ください。

定型コードを確認する

このセクションでは、選択されたテンプレートで Visual Studio が作成した Flask プロジェクト ファイル (.py) の定型コードを確認します。

  1. ソリューション エクスプローラーを開いて、ソリューションと Flask プロジェクト ファイルを表示します。 初期プロジェクトには、app.pyrequirements.txt の 2 つのファイルのみが含まれています。

    ソリューション エクスプローラー内での最初の Flask プロジェクト ファイルを示すスクリーンショット。

    requirements.txt ファイルは、Flask パッケージの依存関係を指定します。 このファイルの存在は、プロジェクトを最初に作成するときに仮想環境の作成を求めるものです。

    1 つの app.py ファイル内に、空の Flask Web プロジェクトの定型コードが含まれています。 このテンプレートは「クイック スタート - Flask を使用して Web アプリを作成する」の記事の説明に似たコードを提供し、いくつかの追加セクションがあります。

  2. エディター内で、app.py ファイルを開いて、上部のセクションを確認します。

    このコードは、Flask パッケージの import ステートメントで始まります。 このステートメントは Flask クラスのインスタンスを作成しますが、これは、変数 app に割り当てられます。

    from flask import Flask
    app = Flask(__name__)
    

    次に、コードは、Flask アプリを Web ホストにデプロイするときに便利な wsgi_app 変数を割り当てます。

    # Make the WSGI interface available at the top level so wfastcgi can get it.
    wsgi_app = app.wsgi_app
    
  3. 中央のセクションはURL ルートに関数を割り当ててますが、これは、関数が、URL によって識別されるリソースを提供することを意味します。 この場合、ルートは、ビューを定義します。

    @app.route('/')
    def hello():
        """Renders a sample page."""
        return "Hello World!"
    

    ルートを定義するには、サイトルートからの相対 URL である Flask @app.route のデコレーターを引数付きで使用します。 コードを見るとわかるように、この関数はテキスト文字列のみを返します。ブラウザーのレンダリングにはこれで十分です。

  4. 下部のセクションには、Flask 開発サーバーを起動するためのオプション コードが含まれています。 ハードコーディングするのではなく環境変数を使用して、ホストとポートを設定します。 このようなコードによって、コードを変更することなく、開発コンピューターと運用コンピューターの両方で構成を簡単に制御できます。

    if __name__ == '__main__':
        import os
        HOST = os.environ.get('SERVER_HOST', 'localhost')
        try:
            PORT = int(os.environ.get('SERVER_PORT', '5555'))
        except ValueError:
            PORT = 5555
        app.run(HOST, PORT)
    
  5. [デバッグ]>[デバッグなしで開始] を選択して、Flask アプリを実行し、ブラウザーを開いて既定のホストとポートの値である localhost:5555 を表示します。

Visual Studio での Python テンプレートの探索

Python ワークロードをインストールすると、Visual Studio は、Flask、Bottle、Django の Web フレームワークと Azure クラウド サービス用のさまざまなプロジェクト テンプレートを提供します。 また、さまざまな機械学習シナリオ用のテンプレート、Python アプリケーションを含む既存のフォルダー構造からプロジェクトを作成できるテンプレートもあります。 テンプレートにアクセスするには、[ファイル]>[新規]>プロジェクト メニュー オプションを使用します。 Python 言語ノードとその子ノードを選択して、使用可能なテンプレートを表示します。

Visual Studio は、Python クラス、Python パッケージ、Python 単体テスト、web.config ファイルなどを簡単に作成するための複数のファイルや "項目テンプレート" も備えています。 Python プロジェクトを開いているとき、[プロジェクト]>[新しい項目の追加] メニュー オプションを使用することで、項目テンプレートにアクセスできます。 詳細については、項目テンプレートのリファレンスを参照してください。

プロジェクトを開始するときやファイルを作成するときは、テンプレートを使用すると時間を大幅に節約できます。 また、さまざまなアプリの種類とコードの構造について学習する優れた方法でもあります。 さまざまなテンプレートからプロジェクトや項目を数分で作成できるということは、そのように作成したものでできることを知る上で便利なことです。

Cookiecutter テンプレートを使用する

Visual Studio は、Cookiecutter と直接統合されており、テンプレートの検出、テンプレート オプションの入力、プロジェクト及びファイルの作成に役立ちます。 詳細については、「クイック スタート: Cookiecutter テンプレートからプロジェクトを作成する」という記事を参照してください。