微軟太良心了,來試試免費服務器搭建 Python 網(wǎng)站
閱讀本文大概需要 3 分鐘。
有時候,我們使用 Flask 或者 Django 寫了一個簡單的網(wǎng)頁,想把它部署起來給所有人使用,但是又沒有服務器。這個時候,除了買一臺云服務外,我們還可以使用微軟 Azure 免費提供的應用服務來部署。
首先我們使用 Flask 寫一個非常簡單的后端接口,如下圖所示:

現(xiàn)在,我不想買服務器,但又想把它部署到互聯(lián)網(wǎng)上面。這個時候,我們就可以使用 Azure 的應用服務功能了。
首先,我們?nèi)ド暾堃粋€ Azure 的賬號,Azure 的官方網(wǎng)站為:Microsoft Azure[1],我們只需要像注冊普通網(wǎng)站一樣上去注冊賬號就可以了。Azure 注冊以后,會送你12個月的免費云服務器,如下圖所示。這個服務器你可以用來做很多事情。但我們今天用不到這個云服務器。

有了 Azure 賬號以后,我們就需要安裝一個叫做Azure-cli的東西,Azure-cli 的安裝說明,可以參考:Install the Azure CLI | Microsoft Docs[2]。在這里根據(jù)你的操作系統(tǒng)查看安裝說明即可。我以 macOS 為例,使用 Homebrew 安裝:
brew?install?azure-cli
安裝完成以后,我們需要使用 azure-cli 登錄賬號,輸入:
az?login
此時,會彈出一個網(wǎng)頁,在網(wǎng)頁上登錄剛剛注冊的賬號即可完成登錄。登錄完成以后,網(wǎng)頁顯示如下內(nèi)容:

終端窗口顯示如下圖所示:

接下來就要開始部署了。首先在終端中進入我們剛剛創(chuàng)建的 Flask 項目的根目錄,確保有如下兩個文件:requirements.txt和app.py。其中,requirements.txt 可以通過如下命令導出:
pip?freeze?>?requirements.txt
此時,就體現(xiàn)出創(chuàng)建虛擬環(huán)境的重要性了,有了虛擬環(huán)境,那么導出來的只有這個項目需要的第三方庫,不會把不相關的庫也導出。
而app.py就是網(wǎng)站的入口程序了,也就是我們設置FLASK_APP環(huán)境變量指向的這個程序。
這兩個東西就位以后,我們只需要執(zhí)行如下一條命令:
az?webapp?up?--sku?F1?--name?kingname
其中,--sku F1這個參數(shù)必須有,表示使用免費的定價策略。如果不加上這個參數(shù),那么 Azure 會把你的網(wǎng)站部署到收費的策略中。
而--name kingname表示你的項目名字叫做kingname。整個部署的過程大概2分鐘左右。運行效果如下圖所示:

現(xiàn)在,我們訪問:http://kingname.azurewebsites.net就可以看到剛剛部署的網(wǎng)站了:

接下來,我們要更新一下后端代碼:

改好代碼,想重新部署的時候,只需要再次執(zhí)行:
az?webapp?up
就可以輕輕松松更新網(wǎng)站程序了。如下圖所示:

Azure 的這個應用服務,原生支持 Django 和 Flask 網(wǎng)站的直接部署。如果你使用的是其他后端框架,或者你的程序不是一個網(wǎng)站,而是一個長期運行的普通 Python 腳本,那也沒有關系,應用服務還提供指定啟動命令的功能。具體操作,大家可以閱讀它的官方文檔:配置 Linux Python 應用 - Azure App Service | Microsoft Docs[3]. 大家也可以點擊左下角“閱讀原文”直接打開 Azure 應用服務的幫助文檔。
參考資料
Microsoft Azure:?https://portal.azure.com/
[2]Install the Azure CLI | Microsoft Docs:?https://docs.microsoft.com/zh-cn/cli/azure/install-azure-cli?WT.mc_id=DT-MVP-5003916
[3]配置 Linux Python 應用 - Azure App Service | Microsoft Docs:?https://docs.microsoft.com/zh-cn/azure/app-service/configure-language-python#customize-startup-command?WT.mc_id=DT-MVP-5003916
