Visual Studio 中的 Python 支援透過專案範本和可配置為處理各種框架的偵錯啟動器,在 Bottle、Flask 和 Django 框架中開發 Web 專案。 這些範本包含一個 requirements.txt 檔案,用於宣告必要的相依性。 當您從其中一個範本建立專案時,Visual Studio 會提示您安裝相依套件,如本文稍後的 安裝需求 中所述。
您也可以將通用 Web 專案 範本用於其他架構,例如 Pyramid。 在此情況下,不會隨範本一起安裝任何架構。 相反地,您會將必要的套件安裝到您用於專案的環境中。 如需詳細資訊,請參閱 Python 環境視窗 - 套件索引標籤。
專案範本選項
您可以從工具列功能表中選取「 檔案>新增>專案 」,從範本建立專案。 在「 建立新專案 」對話方塊中,您可以篩選範本清單,以查看適用於 Python Web 專案的選項。 在 [搜尋 ] 方塊中輸入關鍵字詞,或使用篩選器下拉式功能表選取 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 專案的 虛擬環境 ,以確保在發佈網站時包含正確的相依性:
如果您使用原始檔控制,通常會省略虛擬環境資料夾,因為只能使用 requirements.txt 檔案來重新建立該環境。 排除資料夾的最佳方法是先選取「 我將自行安裝它們 」選項,然後在建立虛擬環境之前停用自動提交。 如需詳細資訊,請參閱 學習 Django 教學課程 和 學習 Flask 教學課程中的檢查 Git 控制項。
當您部署至 Microsoft Azure App Service 時,請選取 Python 版本作為 網站延伸模組 ,並手動安裝套件。 此外,由於 Azure App Service 在從 Visual Studio 部署時 不會自動從requirements.txt 檔案安裝套件,因此請遵循 aka.ms/PythonOnAppService 上的設定詳細資料。
偵錯選項
當您開啟 Web 專案進行偵錯時,Visual Studio 會在隨機埠上啟動本機網頁伺服器,並將預設瀏覽器開啟至該位址和埠。 若要指定更多選項,請以滑鼠右鍵按一下 [方案總管] 中的專案,然後選取 [屬性]。 在 [屬性] 頁面中,選取 [偵錯] 索引標籤。
有三組常見的組態選項可用於偵錯專案。 [ 執行] 群組包含下列屬性:
- 「搜尋路徑」、「指令碼引數」、「解譯器路徑」和「解譯器引數」選項與一般偵錯相同。
-
啟動 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 上開啟問題。