在執行部署Django網站以前,應該先處理好前期工做,好比對settings.py文件進行設置以防止私密信息泄露等。本文只是簡單的筆記,原文地址爲:https://tutorial.djangogirls....python
1, 將Django項目發佈到GitHubgit
2, 申請免費的PythonAnyWhere帳號
網址:https://www.pythonanywhere.com/
免費的帳號只能建一個站。站名只能爲XXX.pythonanywhere.com。其中XXX表明註冊帳戶時所用的用戶名。站點只能維持2個月,2個月後就會被刪除。github
3, 將GitHub上的項目發送至PythonAnyWhere
3.1 在PythonAnyWhere中,點擊 「Consoles」 –> start a 「Bash」 console
這個Bash是相似於Linux系統裏的「終端」。
3.2 在這個新建的Bash裏面輸入:
注意:以下代碼表示須要在PythonAnyWhere的Bash中執行!!web
$ git clone https://github.com/<your-github-username>/my-first-blog.git
這個步驟將GitHub的項目發送到PythonAnyWhere。注意上面的這個連接就是GitHub裏項目的倉庫地址:
數據庫
Bash的響應很是慢,須要耐心等候。
發送完成後可使用下面的代碼來看被複制到PythonAnyWhere的文件目錄結構,須要強調的是,這個my-first-blog即爲GitHub裏的倉庫的項目名字。
注意:以下代碼表示須要在PythonAnyWhere的Bash中執行!!django
tree my-first-blog
4, 爲PythonAnyWhere裏的項目建立virtual environment
繼續在PythonAnyWhere的Bash裏執行下面的命令,以建立一個名爲myvenv的虛擬環境。
注意:以下代碼表示須要在PythonAnyWhere的Bash中執行!!app
$ 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將帶咱們到一個新的頁面(一個代碼編輯器),將編輯器的代碼所有用下面的代碼替換。
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