クイック スタート: 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 サポートのインストール」をご覧ください。
Visual Studio for Mac はサポートされていません。 詳細については、「Visual Studio for Mac の現状」を参照してください。Windows、Mac、および Linux での Visual Studio Code は、利用可能な拡張機能を使用して Python コードを問題なく操作できます。
プロジェクトを作成する
次の手順に沿って、Visual Studio ソリューション及び新しい Flask Web プロジェクトを作成します。
Visual Studio で、[ファイル]>[新規]>[プロジェクト] を選択して、"Flask." を検索します。[空の Flask Web プロジェクト] テンプレートを選択して、[次へ] を選択します。
Visual Studio に、プロジェクト構成ダイアログが表示されます。 プロジェクトの [名前] を入力し、[作成] を選択します。 他のフィールドは、デフォルトのままにしておくことができます。
しばらくすると、Visual Studio に、パッケージの依存関係の処理方法に関するプロンプトが表示されます。 既にパッケージの依存関係がインストールされているかどうかによって、プロンプトが異なります。
[このプロジェクトには外部パッケージが必要です] ダイアログは、選択したテンプレートに Flask パッケージへの依存関係を指定する requirements.txt ファイルが含まれていることを示します。 Visual Studio ではパッケージを自動的にインストールできるため、仮想環境にパッケージをインストールするためのオプションが提供されます。 グローバル環境へのインストールよりも、仮想環境の使用をお勧めします。
このダイアログが表示されたら、[仮想環境へのインストール] オプションを選択します。
または、 [プロジェクト <プロジェクト名>内に Python パッケージ仕様ファイル "requirements.txt" が検出されました。] というプロンプトが表示される場合があります。 このプロンプトは、パッケージの依存関係が、構成内で既に使用可能であることを示します。 Visual Studio では、既存の構成から必要な仮想環境を作成できます。
このプロンプトが表示された場合は、[仮想環境の作成] オプションを選択します。
Visual Studio に、[環境の追加] ダイアログが表示されます。 既定値をそのまま使用して、[作成] を選択し、続いて、昇格要求に同意します。
Visual Studio で、 [ファイル]>[新規]>[プロジェクト] の順に選択します。
[新しいプロジェクト] ダイアログ内で、"空の Flask" を検索します。 中央のリスト内で、空の Flask Web プロジェクト テンプレートを選択して、プロジェクト 名を入力し、[OK] を選択 します。
すぐに、Visual Studio に、プロンプトが表示されます。
[このプロジェクトには外部パッケージが必要です] ダイアログは、選択したテンプレートに Flask パッケージへの依存関係を指定する requirements.txt ファイルが含まれていることを示します。 Visual Studio ではパッケージを自動的にインストールできるため、仮想環境にパッケージをインストールするためのオプションが提供されます。 グローバル環境へのインストールよりも、仮想環境の使用をお勧めします。
このダイアログが表示されたら、[仮想環境へのインストール] オプションを選択します。
または、 [プロジェクト <プロジェクト名>内に Python パッケージ仕様ファイル "requirements.txt" が検出されました。] というプロンプトが表示される場合があります。 このプロンプトは、パッケージの依存関係が、構成内で既に使用可能であることを示します。 Visual Studio では、既存の構成から必要な仮想環境を作成できます。
このプロンプトが表示された場合は、[仮想環境の作成] オプションを選択します。
Visual Studio に、[環境の追加] ダイアログが表示されます。 既定値をそのまま使用して、[作成] を選択し、続いて、昇格要求に同意します。
ヒント
プロジェクトを開始するとき、すぐに仮想環境を作成することを強くお勧めします。ほとんどの Visual Studio テンプレートでそのように勧められます。 仮想環境では、時間の経過と共にライブラリを追加したり、削除したりしても、プロジェクトの厳密な要件が維持されます。 そのため、requirements.txt ファイルを簡単に生成できます。このファイルを利用し、(ソース管理を利用するとき) 他の開発コンピューターにそれらの依存関係を再インストールします。また、運用サーバーにプロジェクトを展開するときに再インストールします。 仮想環境とその長所については、「仮想環境を使用する」と「requirements.txt での必須パッケージの管理」をご覧ください。
定型コードを確認する
このセクションでは、選択されたテンプレートで Visual Studio が作成した Flask プロジェクト ファイル (.py) の定型コードを確認します。
ソリューション エクスプローラーを開いて、ソリューションと Flask プロジェクト ファイルを表示します。 初期プロジェクトには、app.py と requirements.txt の 2 つのファイルのみが含まれています。
requirements.txt ファイルは、Flask パッケージの依存関係を指定します。 このファイルの存在は、プロジェクトを最初に作成するときに仮想環境の作成を求めるものです。
1 つの app.py ファイル内に、空の Flask Web プロジェクトの定型コードが含まれています。 このテンプレートは「クイック スタート - Flask を使用して Web アプリを作成する」の記事の説明に似たコードを提供し、いくつかの追加セクションがあります。
エディター内で、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
中央のセクションはURL ルートに関数を割り当ててますが、これは、関数が、URL によって識別されるリソースを提供することを意味します。 この場合、ルートは、ビューを定義します。
@app.route('/') def hello(): """Renders a sample page.""" return "Hello World!"
ルートを定義するには、サイトルートからの相対 URL である Flask
@app.route
のデコレーターを引数付きで使用します。 コードを見るとわかるように、この関数はテキスト文字列のみを返します。ブラウザーのレンダリングにはこれで十分です。下部のセクションには、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)
[デバッグ]>[デバッグなしで開始] を選択して、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 テンプレートからプロジェクトを作成する」という記事を参照してください。