在PythonAnyWhere上部署Django項目

 


具體的部署過程:

1.建立帳戶

在PAW(PythonAnyWhere)上建立免費beginner帳戶,網址爲:
https://www.pythonanywhere.com/pricing/python

2.進入Dashboard

建立帳戶成功後,登陸帳戶,在頁面的右上角點擊Dashboard進入相似於控制面板的頁面,在這裏,你將看到
「Consoles」、「Files」、「Web」、「Schedule」、「Databases」等標籤。mysql

3.啓動終端,建立虛擬環境

Consoles標籤了點擊bash,頁面會加載一個bash終端,首先建立rango(django app)的虛擬環境git

$ mkvirtualenv rango

建立成功後,輸入端的前面會多出(rango)標示,以下所示:github

(rango) 09:06 ~ $

命令deactivate將退出虛擬環境,命令workon rango將再次進入虛擬環境。web

4.安裝依賴包

利用pip安裝在開發中用到的各類python第三方包,這裏我使用了以下命令:sql

(rango) 09:06 ~ $ pip install django
(rango) 09:10 ~ $ pip install django-registration-redux

安裝略慢,由於你註冊的免費的beginner帳戶。數據庫

5.上傳項目代碼至服務器

安裝成功後,接下來從github克隆你的項目至PAW。可是我以前根本沒有把項目放在github上,網上一番查找相關資料後,找到了git相關用法,很簡單,只須要如下簡單的步驟:django

5.1建立本地git倉庫

在本地mac上,進入tango_with_django的項目目錄(此目錄裏能找到manage.py),鍵入:redux

⇒  git init

這樣就在此目錄裏建立了一個本地repository,前提是你的電腦裏已經安裝了git瀏覽器

5.2添加文件引用

將此目錄的全部文件引用添加到git,命令爲:

⇒  git add --all

5.3提交文件引用

將添加的引用提交到本地repository,命令爲:

⇒  git commit -m "the first time to add all files"

5.4推送項目至github遠程倉庫

將本地repository推送到github上面的repository,首先須要登陸github的網頁,而後新建一個repository,命名爲tango_with_django,接着在本地電腦終端鍵入以下命令:

⇒  git remote add origin https://github.com/sass1s/tango_with_django.git
⇒  git push -u origin master

輸入第二條命令的時候,可能要求輸入你的github的帳戶和密碼。這樣,我就完成了將本地的repository推送到github的repository了。

5.5克隆github倉庫至PAW服務器

回到PAW的終端,將github的repository克隆到PAW的服務器裏,命令以下:

git clone https://sass1s:<password>@github.com/sass1s/tango_with_django.git

成功後,你將在~目錄看到tango_with_django的文件夾。

6.建立數據

建立項目啓動前的一些命令,依次鍵入:

(rango) 09:47 ~/tango_with_django (master)$ python manage.py makemigrations
(rango) 09:47 ~/tango_with_django (master)$ python manage.py migrate
(rango) 09:47 ~/tango_with_django (master)$ python populate_rango.py

7.建立web app

退出PAW的終端,點擊Web標籤,進入後,點擊頁面左邊的Add a new web app,點擊幾個next,注意中途須要點擊manual configuration,便可成功建立web app。此時,你在瀏覽器鍵入http://<username>.pythonanwhere.com後,會看到Hello, World!的頁面。

8.配置Virtualenv

建立web app成功後,在Web標籤頁面會出現你建立的web app相關配置信息,我稱之爲項目管理頁面。在該頁面找到Virtualenv,點擊Enter a path to a virtualenv, if desired,替換成你本身的virtualenv路徑,如:/home/<username>/.virtualenvs/rango
此處有個坑,若按照tango with django的教程,此處應爲:/home/<username>/.virtualenvs/rango/bin/activate_this.py,但這是錯誤的配置方式,困擾了我好長時間。

9.配置WSGI代碼

在項目管理頁面找到WSGI configuration file: [/var/www/<username>_pythonanywhere_com_wsgi.py],點擊該py文件,只保留如下代碼,其他代碼刪除(或註釋掉):

# +++++++++++ DJANGO +++++++++++
# To use your own django app use code like this:
import os
import sys
#
## assuming your django settings file is at '/home/<username>/mysite/mysite/settings.py'
## and your manage.py is is at '/home/<username>/mysite/manage.py'
path = '/home/<username>/tango_with_django'
if path not in sys.path:
sys.path.append(path)
#
os.environ['DJANGO_SETTINGS_MODULE'] = 'tango_with_django_project.settings'
#
## then, for django >=1.5:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
## or, for older django <=1.4
#import django.core.handlers.wsgi
#application = django.core.handlers.wsgi.WSGIHandler()


此處還有個坑,不要仿照tango with django的教程寫入他的代碼,由於部分代碼過期了。以上代碼保存退出後,能夠重啓(Reload)你的應用,一切順利的話,你就能夠在http://<username>.pythonanywhere.com/看到你的應用的頁面了。

10.配置靜態文件

在項目管理頁面找到Static files,點擊Enter URL,輸入/static/admin,點擊對應的Enter path,輸入/home/<username>/.virtualenvs/rango/lib/python2.7/site-packages/django/contrib/admin/static/admin,以上步驟添加了admin相關頁面的靜態文件;下面添加應用中的靜態文件,再次點擊Enter URL,輸入/static/,點擊對應的Enter path,輸入/home/<username>/tango_with_django/static/
此處tango with django的教程還有個坑,它對應的/static/path/home/<username>/tango_with_django/tango_with_django_project/static,路徑中多了一個tango_with_django_project,這也困擾了我好一下子。
以上一切順利的話,在你的網址http://<username>.pythonanywhere.com/中就能看到諸如圖片之類的東東了。

11.導入數據庫

(1)導出本地數據庫

mysqldump -uroot -p <本地數據庫名> > 保存文件名.sql

(2)使用'git'或者在pythonanywhere上數據庫文件<保存文件名.sql>。
(3)進入pythonanywhere的mysql console,依次輸入

use <username>$<databasename>;

source /home/<username>/<projectname>/<保存文件名.sql>


參考資料:

https://help.pythonanywhere.com/pages/UsingMySQL
https://help.pythonanywhere.com/pages/ImportingYourLocalDatabaseToPythonAnywhere

相關文章
相關標籤/搜索