轉載自:https://segmentfault.com/a/1190000009240824
在執行部署Django網站之前,應該先處理好前期作業,比如對settings.py檔案進行設定以防止私密資訊泄露等,本文只是簡單的筆記,原文地址為:https://tutorial.djangogirls....
1, 將Django專案發布到GitHub
2, 申請免費的PythonAnyWhere賬號
網址:https://www.pythonanywhere.com/
免費的賬號只能建一個站,站名只能為XXX.pythonanywhere.com,其中XXX代表注冊賬戶時所用的用戶名,站點只能維持2個月,2個月后就會被洗掉,
3, 將GitHub上的專案發送至PythonAnyWhere
3.1 在PythonAnyWhere中,點擊 “Consoles” –> start a “Bash” console
這個Bash是類似于Linux系統里的“終端”,
3.2 在這個新建的Bash里面輸入:
注意:如下代碼表示需要在PythonAnyWhere的Bash中執行!!
$ git clone https://github.com/<your-github-username>/my-first-blog.git
這個步驟將GitHub的專案發送到PythonAnyWhere,注意上面的這個鏈接就是GitHub里專案的倉庫地址:
Bash的回應非常慢,需要耐心等候,
發送完成后可以使用下面的代碼來看被復制到PythonAnyWhere的檔案目錄結構,需要強調的是,這個my-first-blog即為GitHub里的倉庫的專案名字,
注意:如下代碼表示需要在PythonAnyWhere的Bash中執行!!
tree my-first-blog
4, 為PythonAnyWhere里的專案創建virtual environment
繼續在PythonAnyWhere的Bash里執行下面的命令,以創建一個名為myvenv的虛擬環境,
注意:如下代碼表示需要在PythonAnyWhere的Bash中執行!!
$ cd my-first-blog
$ virtualenv --python=python3.5 myvenv
$ source myvenv/bin/activate
(myvenv) $ pip install django==1.10.0
上面的python和django版本號僅供參考!
5, 為PythonAnyWhere里的專案創建資料庫并創建超級賬戶
注意:如下代碼表示需要在PythonAnyWhere的Bash中執行!!
(myvenv) $ python manage.py migrate
(myvenv) $ python manage.py createsuperuser
6, 將Django專案作為Web App發布
到這里,我們的Django專案已經在PythonAnyWhere上了,虛擬環境也準備好了,資料庫也創建好了,此時就可以將它作為Web App發布了!在PythonAnyWhere里,點擊 “Web”選項卡 -> 點擊 “Add a new web app”
-> 確認域名 -> 選擇manual configuration(注意不是選擇“Django”哦) -> 選擇Python3.5 -> 點擊Next以最終完成向導,
7, 配置Web App的虛擬環境
創建好了Web App之后,PythonAnyWhere就會將你帶到該Web App的配置界面,點擊Virtualenv下面紅色的字體來編輯虛擬環境的位置,如下圖所示:
將地址修改為:
/home/<你的PythonAnyWhere的賬戶名>/my-first-blog/myvenv
注意:上面的my-first-blog為GitHub里的專案的倉庫地址,
注意:上面的myvenv是該創建的虛擬環境的名字
8, 配置PythonAnyWhere里的WSGI檔案
仍然是在Web選項卡,點擊WSGI configuration file后面的藍色字體連接(如下圖所示),
PythonAnyWhere將帶我們到一個新的頁面(一個代碼編輯器),將編輯器的代碼全部用下面的代碼替換,
path = ‘/home/<你的PythonAnyWhere用戶名>/my-first-blog’ # 在這里使用你自己的用戶名和GitHub專案的名字,
if path not in sys.path:
sys.path.append(path)
os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘mysite.settings’ # 在這里mysite請用settings所在檔案夾名,我用的是和GitHub倉庫名一樣的名字
from django.core.wsgi import get_wsgi_application
from django.contrib.staticfiles.handlers import StaticFilesHandler
application = StaticFilesHandler(get_wsgi_application())
" title="" data-original-title=“已復制”>
import os
import sys
path = ‘/home/<你的PythonAnyWhere用戶名>/my-first-blog’ # 在這里使用你自己的用戶名和GitHub專案的名字,
if path not in sys.path:
sys.path.append(path)
os.environ[‘DJANGO_SETTINGS_MODULE’] = ‘mysite.settings’ # 在這里mysite請用settings所在檔案夾名,我用的是和GitHub倉庫名一樣的名字
from django.core.wsgi import get_wsgi_application
from django.contrib.staticfiles.handlers import StaticFilesHandler
application = StaticFilesHandler(get_wsgi_application())
點擊 “Save” -> 回傳Web選項卡 -> 點擊大大的綠色按鈕“Reload”,此時我們就可以通過Web選項卡上提供的地址(也就是XXX.pythonanywhere.com)訪問了!這樣我們的網站就真正在互聯網上存在了,雖然只有兩個月的有效期:-(
9, Debug
在配置程序中,難免會出錯導致站點無法成功發布,首先應該:
查看出錯頁面顯示的error log
查看Web選項卡頁面有無任何錯誤提示
常見的錯誤包括:在PythonAnyWhere的Bash漏了創建virtualenv,激活它,給它安裝Django,給它初始化資料庫
第7步設定虛擬環境的路徑是時有錯誤
第8步配置WSGI時有錯誤,是否填入正確的path了呢?
安裝虛擬環境時選擇的Python版本和創建Web App時選擇的Python是否都是同一版本?
10, 如何將GitHub里專案的修改反饋到PythonAnyWhere?
專案又要修改的時候,通常是在本地計算機修改,修改好之后發布到GitHub,之后發布到PythonAnyWhere,當GitHub里專案修改好之后,在PythonAnyWhere的Bash里面輸入下面兩行代碼就可以同步了:
注意:如下代碼表示需要在PythonAnyWhere的Bash中執行!!
cd my-first-blog
git pull
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/287270.html
標籤:其他
上一篇:Selenium面試常見問題
