共用方式為


Python Web 應用程式專案範本

Visual Studio 中的 Python 支援透過專案範本和可配置為處理各種框架的偵錯啟動器,在 Bottle、Flask 和 Django 框架中開發 Web 專案。 這些範本包含一個 requirements.txt 檔案,用於宣告必要的相依性。 當您從其中一個範本建立專案時,Visual Studio 會提示您安裝相依套件,如本文稍後的 安裝需求 中所述。

您也可以將通用 Web 專案 範本用於其他架構,例如 Pyramid。 在此情況下,不會隨範本一起安裝任何架構。 相反地,您會將必要的套件安裝到您用於專案的環境中。 如需詳細資訊,請參閱 Python 環境視窗 - 套件索引標籤

專案範本選項

您可以從工具列功能表中選取「 檔案>新增>專案 」,從範本建立專案。 在「 建立新專案 」對話方塊中,您可以篩選範本清單,以查看適用於 Python Web 專案的選項。 在 [搜尋 ] 方塊中輸入關鍵字詞,或使用篩選器下拉式功能表選取 Python 作為語言,選取 Web 作為專案類型。

螢幕擷取畫面顯示 [建立新專案] 對話方塊,其中已篩選範本,以顯示 Visual Studio 中 Python Web 應用程式的選項。

選取範本之後,您可以提供專案和解決方案的名稱,並設定解決方案目錄和 Git 存放庫的選項。

泛型 Web 專案 範本提供空的 Visual Studio 專案,沒有任何程式碼,而且除了是 Python 專案之外,不會做出任何假設。 其他範本以 Bottle、Flask 或 Django Web 架構為基礎,並分為三個類別,如下列各節所述。 這些範本中的任何一個所建立的應用程式都包含足夠的程式碼,可在本機執行和偵錯應用程式。 每個範本也提供必要的 WSGI 應用程式物件 (python.org) ,以與生產 Web 伺服器搭配使用。

空白群組

所有 空白 <架構> Web 專案 範本都會建立專案,其中包含或多或少最少的樣板程式碼,以及 在requirements.txt 檔案中宣告的必要相依性。

Template Description
空白瓶網頁項目 app.py 檔案中產生一個簡單的應用程式,包含 / 路徑的首頁,以及使用簡短的內嵌頁面範本來回顯 <name> 值的 /hello/<name> 頁面。
空白的 Django Web 專案 產生具有核心 Django 網站結構但沒有 Django 應用程式的 Django 專案。 如需詳細資訊,請參閱 Django 範本學習 Django 步驟 1
Blank Flask 網路專案 /位置產生一個包含單一「Hello World!」頁面的最小應用程式。 此應用程式類似於 遵循快速入門:使用 Visual Studio 建立您的第一個 Python Web 應用程式中詳細步驟的結果。 如需詳細資訊,請參閱 學習 Flask 步驟 1

網頁群組

無論選擇何種架構,所有 <Framework> Web 專案 範本都會建立具有相同設計的入門 Web 應用程式。 該應用程序具有主頁、關於和聯繫人頁面,以及導航菜單欄和使用 Bootstrap 的響應式設計。 每個應用程式都經過適當設定,以提供靜態檔案 (CSS、JavaScript 和字型),並使用適合架構的頁面範本機制。

Template Description
Bottle 網頁專案 產生應用程式,其靜態檔案包含在 靜態 資料夾中,並透過 app.py 檔案中的程式碼進行處理。 個別頁面的路由包含在 routes.py 檔案中。 檢視資料夾包含頁面範本。
Django Web 專案 產生一個 Django 專案和一個具有三個頁面、身份驗證支援和 SQLite 資料庫(但沒有資料模型)的 Django 應用程式。 如需詳細資訊,請參閱 Django 範本和學習 Django 步驟 4
Flask Web 專案 產生靜態檔案包含在 靜態 資料夾中的應用程式。 views.py 檔案中的程式碼會使用使用範本資料夾中包含的 Jinja 引擎的頁面範本來處理路由。 runserver.py 檔案提供啟動程式碼。

安裝需求

當您從架構特定的範本建立專案時,Visual Studio 會提供對話方塊,協助您使用 pip 安裝必要的套件。 我們也建議您使用 Web 專案的 虛擬環境 ,以確保在發佈網站時包含正確的相依性:

螢幕擷取畫面,顯示在 Visual Studio 中安裝專案範本套件的對話方塊。

如果您使用原始檔控制,通常會省略虛擬環境資料夾,因為只能使用 requirements.txt 檔案來重新建立該環境。 排除資料夾的最佳方法是先選取「 我將自行安裝它們 」選項,然後在建立虛擬環境之前停用自動提交。 如需詳細資訊,請參閱 學習 Django 教學課程學習 Flask 教學課程中的檢查 Git 控制項

當您部署至 Microsoft Azure App Service 時,請選取 Python 版本作為 網站延伸模組 ,並手動安裝套件。 此外,由於 Azure App Service 在從 Visual Studio 部署時 不會自動從requirements.txt 檔案安裝套件,因此請遵循 aka.ms/PythonOnAppService 上的設定詳細資料。

偵錯選項

當您開啟 Web 專案進行偵錯時,Visual Studio 會在隨機埠上啟動本機網頁伺服器,並將預設瀏覽器開啟至該位址和埠。 若要指定更多選項,請以滑鼠右鍵按一下 [方案總管] 中的專案,然後選取 [屬性]。 在 [屬性] 頁面中,選取 [偵錯] 索引標籤。

螢幕擷取畫面,顯示 Visual Studio 中泛型 Web 範本的 Web 啟動器屬性。

有三組常見的組態選項可用於偵錯專案。 [ 執行] 群組包含下列屬性:

  • 搜尋路徑」、「指令碼引數」、「解譯器路徑」和「解譯器引數」選項與一般偵錯相同。
  • 啟動 URL 指定在瀏覽器中開啟的 URL。 預設位置是 localhost
  • 如果 URL 中未指定任何埠,則埠 號碼 會識別要使用的埠 (Visual Studio 預設會自動選取一個埠)。 此設定可讓您覆寫環境變數的 SERVER_PORT 預設值,範本會使用該值來設定本機偵錯伺服器接聽的埠。
  • 環境」 清單會定義要在產生程序中設定的變數。 格式是由換行符分隔的<NAME>=<VALUE> 配對清單。

執行伺服器命令 」和 「偵錯伺服器命令 」群組中的屬性會決定如何啟動網頁伺服器。 因為許多框架需要在目前專案之外使用腳本,所以可以在此處配置腳本,並將啟動模組的名稱作為參數傳遞。

  • 命令可以是 Python 腳本 (*.py 檔案)、模組名稱 (如 , python.exe -m module_name) 或單行程式碼 (如 , python.exe -c "code")。 下拉式方塊中的值會指出要使用的型別。
  • 引數清單會在命令列上傳遞,跟在命令之後。
  • 同樣地, 環境清單 會定義要在可能修改環境的所有內容之後設定的變數,例如埠號和搜尋路徑。 這些變數值可以覆寫其他屬性值。

任何專案屬性或環境變數都可以使用 MSBuild 語法來指定,例如 $(StartupFile) --port $(SERVER_PORT)$(StartupFile) 是啟動檔案的相對路徑,是 {StartupModule} 啟動檔案的可匯入名稱。 $(SERVER_HOST)$(SERVER_PORT) 是由 「啟動 URL」「埠號」 屬性自動設定的一般環境變數,或由 「環境」 屬性設定。

備註

執行伺服器命令 」中的值會與「 偵錯>啟動伺服器 」命令或鍵盤快速鍵 Ctrl+F5 搭配使用。 「 偵錯伺服器指令 」群組中的值會與 「偵錯>啟動偵錯伺服器 」指令或 F5 搭配使用。

樣品瓶配置

Bottle Web 專案範本包含執行必要設定的樣板程式碼。 不過,匯入的瓶子應用程式可能不包含此程式碼,在此情況下,下列設定會使用已安裝 bottle 的模組來啟動應用程式:

  • 執行伺服器命令群組:

    • 指令:bottle(模組)
    • 參數--bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app
  • 偵錯伺服器命令 群組:

    • 指令:bottle(模組)
    • 引數--debug --bind=%SERVER_HOST%:%SERVER_PORT% {StartupModule}:app

--reload使用 Visual Studio 進行偵錯時,不建議使用此選項。

範例金字塔組態

金字塔應用程式目前最好使用 pcreate 命令列工具來建立。 建立應用程式之後,可以使用 [從現有的 Python 程式碼 ] 範本匯入應用程式。 匯入完成後,選取 一般 Web 專案 自訂以設定選項。 這些設定假設 Pyramid 已安裝到該 ..\env 位置的虛擬環境中。

  • 運行 群組:

    • 埠號:6543(或 .ini 檔案中配置的任何內容)
  • 執行伺服器命令群組:

    • 命令: ..\env\scripts\pserve-script.py (腳本)
    • 引數: Production.ini
  • 偵錯伺服器命令 群組:

    • 命令: ..\env\scripts\pserve-script.py (腳本)
    • 引數: Development.ini

小提示

您可能需要設定專案的 [工作目錄 ] 屬性,因為 Pyramid 應用程式通常是專案根目錄下方的一個資料夾。

其他配置

如果您有想要共用的另一個架構的設定,或想要要求另一個架構的設定,請 在 GitHub 上開啟問題