Deploy

目前為止,我們所有的工作都是在自己的電腦完成,你也可以在自己的電腦上看到成果。但是,如果我們想要讓其他人隨時瀏覽這個網站,就必須將它部署(deploy)到穩定的伺服器上。

我們選擇 PythonAnywhere 作為範例。它對於 Python 的支援性相當好,免費帳號也足夠經營一個小型網站。

部署準備

為了將你的程式碼上傳到雲端,我們要先將整個專案打包成一個壓縮檔。在 djangogirls 專案目錄下,用以下的指令將整個專案壓縮成 mysite.zip

(djangogirls_venv) ~/djangogirls$ python -m zipfile -c mysite.zip mysite

部署到雲端

在開始部署之前,請先確定已經在 PythonAnywhere 註冊帳號:

Step 1: 上傳專案

使用 PythonAnywhere 的檔案介面,將專案的壓縮檔上傳。首先切換到 Files 分頁,按下 Upload a file 按鈕:

選擇剛剛壓縮好的 mysite.zip。當畫面上出現這個檔案時,便表示已經上傳完成。

Step 2: 開啟 Bash Console

切換到 Consoles 分頁,點選 Bash 開啟一個新的 Bash console。我們可以透過它下指令,以建置部署環境。

首先利用 unzip 指令將專案解壓縮:

~ $ unzip mysite.zip

由於雲端的環境與我們本機端不同,我們需要為它建立一個新的虛擬環境,並在裡面安裝 Django:

~ $ virtualenv --python=python3.5 djangogirls_venv
~ $ source djangogirls_venv/bin/activate
(djangogirls_venv) ~ $ pip install "django<1.9"

Step 3: 新增一個新的 web app

點擊左上角的 logo 回到主頁面,接著切換到 Web 分頁,點選 Add a new web app 按鈕:

在出現的視窗中首先會詢問你想使用的網址。由於免費方案無法設定,我們直接按下 Next 使用預設值。

接著需要選擇 Python Web framework。請特別注意不要選擇 Django。我們將手動設定虛擬環境,因此使用 Manual configuration

在 Python 版本選擇畫面中使用 Python 3.5

最後按下 Next,即完成建立 web app。

Step 4: 修改 web app 設定

當你完成上一個步驟後,Web 分頁會顯示 web app 的設定介面,讓你可以修改設定、重載 web app、或是查看錯誤訊息等等。

首先在中間的 Virtualenv 區塊填入我們前面設定的虛擬環境位置/home/<your-PythonAnywhere-username>/djangogirls_venv,並點選按鈕儲存設定。

注意:請將 <your-PythonAnywhere-username> 改成你在 PythonAnywhere 註冊的 username。我們在後面還會不斷提到這個路徑,務必也要記得修改!

接著設定 PythonAnywhere 與我們的網站如何溝通。用 Python 撰寫的網站程式是透過 Python 制定的 WSGI - Web Server Gateway Interface 標準,來定義和伺服器溝通的介面。在 Code 區塊點選 /var/www/<your-PythonAnywhere-username>_PythonAnywhere_com_wsgi.py,打開編輯介面:

刪除原有的程式碼,並覆蓋為:

import os
import sys

path = '/home/<your-PythonAnywhere-username>/mysite'  # use your own PythonAnywhere username here
if path not in sys.path:
    sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

from django.core.wsgi import get_wsgi_application
from django.contrib.staticfiles.handlers import StaticFilesHandler
application = StaticFilesHandler(get_wsgi_application())

再次提醒,記得要將 <your-PythonAnywhere-username> 改成你在 PythonAnywhere 註冊的 username

點選 Save 儲存修改後,即可點選 logo 離開編輯器。

Step 5: 重新載入(Reload)web app

回到 Web 分頁點選 Reload 按鈕,讓 PythonAnywhere 重新載入我們更新的設定:

Step 6: 開啟瀏覽器觀看你的網站

直接點選,或可以複製網址到瀏覽器打開網站:

大功告成,恭喜你成功發佈了自己的網站!這個網址可以直接分享給任何人:https://djangogirlstaipei.PythonAnywhere.com/——記得前面要替換成你自己的 PythonAnywhere username


未來如果對網站進行任何修改,可以使用以下的步驟更新:

  1. 壓縮專案、上傳
  2. 用 Bash console 解壓縮
  3. 重新載入(Reload)web app

就可以在 PythonAnywhere 上看到新的程式。

注意:在上傳、解壓縮新版程式時,也會讓雲端的所有資料庫被本機的版本覆蓋!

results matching ""

    No results matching ""