[python] mezzanine 在 pythonanywhere 的安裝

  • 496
  • 0
  • 2016-03-14

Mezzanine 是基於 django 的 CMS (Content Management System,內容管理系統),可以快速建立可上線的網站、部落格…等等。

Mezzanine 是基於 django 的 CMS (Content Management System,內容管理系統),可以快速建立可上線的網站、部落格…等等。

PythonAnyWhere 則是一個服務商,可以提供以 python 為基礎的許多 web framework,例如 django。所以,在 PythonAnyWhere 上要提供一個 Django 網站是內建功能之一。其他的像 flask 或是 bottle 等 web framework 現在也支援。一般人可以申請免費服務試用,可以有 512 MB 的硬碟空間與 100 秒 cpu 時間。如果 100 秒 cpu 時間用完,其實還是可以正常運作,只是慢一點而已,拿來試用非常剛好。

把 Mezzanie 與 PythonAnyWhere 結合在一起是很簡單的。PythonAnyWhere 官方建議在 virtualenv 的環境上來做,也給了範例如下:
第一步,建立 virtualenv 環境

第一步,建立 virtualenv 環境
 

source virtualenvwrapper.sh
mkvirtualenv mezzanine

在 PythonAnyWhere 上必須使用已經提供好 環境設定,所以要使用他們提供的 virtualenvwrapper.sh 與 mkvirtualenv 進入 virtualenv 的環境中。
如果要在 virtualenv 裡用到 python3,要使用以下的指令替代上面第二行指令
 

mkvirtualenv mezzanine --python=python3

如果要使用官方已經裝好的 numpy, scipy 的話,要加上這個參數 --system-site-packages。

執行完之後,就會停在 virtualenv 的環境裡:

(mezzanine)13:12 ~ $

第二步,安裝 mezzanine
接下來就是使用 pip install mezzanine 安裝。

第三步,建立網站專案
在經過一連串下載後,就是開始第一個專案來試用一下了。開第一個專案的指令是:

mezzanine-project project_name
cd project_name

接下來的動作是設定時區與建立資料庫內容。
首先在 settings.py 找到TIME_ZONE, 改成我們這裡的TIME_ZONE='Asia/Taipei'。
然後執行以下指令:

python manage.py createdb --noinput

會在資料庫裡建立所需要的 table。預設使用的是 sqlite3 的資料庫。眼睛利一點的會看到管理者預設帳號密碼是 admin/default。等一下要用,真的要上線一定要去改密碼

第四步,設定 wsgi
PythonAnyWhere 與 mezzanine 的連結是靠 wsgi,請到 web 頁籤

 

 

建立一個按下建立 web app 的按鈕,選擇 manual configuration。

然後把 virtualenv 路徑設定到 /home/yourusername/.virtualenvs/mezzanine 。

找到 WSGI configuration file 所指的檔案連結按下去,改成以下這樣:

import os
import sys

# add project folder to path
path = '/home/yourusername/project_name':
if path not in sys.path:
    sys.path.append(path)

# Remove any references to your home folder (this can break Mezzanine)
while "." in sys.path:
    sys.path.remove(".")
while "" in sys.path:
    sys.path.remove("")

# specify django settings
os.environ['DJANGO_SETTINGS_MODULE'] = 'project_name.settings'

# load default django wsgi app for Django >= 1.4
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

然後按下web app 的 Reload 按鈕,接下來要處理 static 檔案。

第五步,設定 static 檔案
在 web 頁籤,到 Static files 那裡設定:

Url: /static/
Path: /home/yourusername/project_name/static

然後執行以下指令:

python manage.py collectstatic

這樣會把 static 的檔案搬到對的地方去。再按下web app 的 Reload 按鈕。

現在就可以瀏覽一下剛才的成果。

接下來,使用的方法就又是另一個問題了。

 

 

 

分享