iT邦幫忙

2022 iThome 鐵人賽

DAY 30
0
Modern Web

Django 初心者之旅系列 第 30

【Day 30】Django 網站部署篇 - PythonAnywhere

  • 分享至 

  • xImage
  •  

今天是鐵人賽的倒數第二篇,之前我們都是在本機端(Localhost)寫Django的網站,這次就要把它部屬到pythonanywhere囉! 部署完成後,我們就可以不用在本機啟動Server後才能連上網站,而是24小時想進網站都能連上。

我原先是想將Django網站部署到Heroku上,但不幸的是Heroku將在2022年11月底停止免費服務,所以我選擇改部署到PythonAnywhere上。至於PythonAnywhere詳細提供的服務就先不在本篇說明,以下開始部署我們的Django網站吧!

1. 註冊並登入 PythonAnywhere

前往pythonanywhere首頁

登入PythonAnywhere的帳號,沒有的話就註冊一個吧!

成功登入後,映入眼簾的是PythonAnywhere的儀表板(Dashboard)

2. 建立python虛擬環境並安裝Django

點擊儀錶板Consoles那邊的藍色Bash按鈕。

點完按鈕後,就會進入Bash的畫面。

Bash輸入並執行下面的指令,建立名為myproject的虛擬環境,且python版本為3.7

virtualenv --python=python3.7 myproject

分別輸入並執行下面的指令,啟動python虛擬環境並安裝Django

source myproject/bin/activate
pip install django

安裝完Django後,輸入並執行以下指令,離開python虛擬環境。

deactivate

3. 將 Django Project 壓縮並上傳

找到Django Project的資料夾並將它加入壓縮檔(.zip)。

回到PythonAnywhere的儀表板,點擊FilesBrowse Files按鈕。

進入下面的畫面後,點擊Upload a file的按鈕,上傳我們剛剛的Django Project壓縮檔。

上傳完壓縮檔,就可以在按鈕上面看到它 (紅框部分)。

4. 到 Bash 將 Django Project 壓縮檔解壓縮

回到儀錶板,點擊藍色Bash按鈕進入Bash

輸入以下指令把壓縮檔解壓縮。

unzip myworld.zip

5. 建立 Web apps

回到Dashboard點擊Web Apps那邊藍色的Open Web tab按鈕。

接下來點擊左邊藍色的按鈕,建立新的web app
(免費版帳號只能建立一個web app)

點擊後,它會跳出設定domain name的提示,但因為是免費版的帳號,所以不支援這個功能,直接按下方的Next就好。

按下Next後,接下來要選擇這個web apppython框架,這邊不選Django,我們選最下面的手動設定(紅框)。

接下來選擇跟python虛擬環境一樣的python 3.7版本,然後繼續點Next

來到這邊繼續點Next

最後看到這個畫面就代表web app建立成功囉!

6. 設定 Web apps 的 WSGI 和 Virtualenv

在剛建立完的web app頁面往下找到Code設定裡面的WSGI configuration file,點擊進入檔案。

進到檔案裡面後,把它所有的內容修改成下面這樣並按下Save儲存。

import os
import sys

path = '/home/QiXiang/myworld'  #修改成 `/home/pythonanywhere帳號/Django Project名稱`
if path not in sys.path:
    sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = 'myworld.settings' #修改成 'Django Project名稱.settings'

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

回到web app畫面往下找到Virtualenv,然後點擊下方的紅字指定python虛擬環境的路徑。

改成前面建立的python虛擬環境路徑,home/PythonAnywhere帳號/虛擬環境名稱

改完路徑後往上滑,點綠色的按鈕重新載入web app

點擊QiXiang.pythonanywhere.com會發現沒辦法看到正確的網頁,因為我們沒有設定Django Project允許存取的主機位址。

7. 新增 Django Project Allowed Hosts

點擊上方藍色的Files就會看到目前所有的檔案,然後點擊右邊紅色圈起來的Django Project資料夾。

繼續點擊Django Project同名資料夾進入下一層。

點擊右方Filessettings.py,進入修改檔案的畫面。

settings.py往下找到ALLOWED_HOSTS這個List,把主機位址'PythonAnywhere帳號.pythonanywhere.com'加到List裡面。

添加完後,回到web app頁面,點擊最上方的綠色按鈕重新載入web app

直接點擊網址還是會有錯,但我們在瀏覽器直接輸入到members頁面的網址QiXiang.pythonanywhere.com/members,就會成功看到members網頁,代表我們成功部署Django網站囉!

以上就是在PythonAnywhere部署Django網站的流程,明天是總結整個鐵人賽的心得篇,我們明天見!


上一篇
【Day 29】Django 網頁美化篇 - Ctrl+C/V 的魔法
下一篇
【Day 31】Django 初心者之旅的結束
系列文
Django 初心者之旅31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言