🔖 Day3 - Debug, Deploy to PythonAnyWhere

2018 - 06 - 26
🔖 Day3 - Debug, Deploy to PythonAnyWhere
1. [Debug] settings.py裡面有一小項名為DEBUG。 顧名思義,就是在出錯時頁面會回傳error codes。 它是一個Boolean,最初都設為True,方便developers使用。 例如網址錯誤,它會顯示exceptions (error page),說明現有哪些regex是可以通過。 但當真正deploy於internet時,假如遇上這種情況,我們會比較希望頁面顯示成404 Page Not Found。 所以除非under development,它的值應該為False。 雖說是False,但管理人員還是可以收到error code。 同樣在settings.py,可以設立一個list:
ADMIN =[ ("<admin_name>", "email_address") ]

這樣即使在DEBUG = False 情況下,有關的admins還是會收到full exception的email。
2. [Deploy] 把django site upload至 :::PythonAnyWhere:::。 一個支援Python + Django 的平台: 先把整個project zipped:
>python -m zipfile -c <project_name>.zip <project_name>

連上:::PythonAnyWhere::: 到FILE分頁,把<project_name>.zip upload上去 到console頁面,開啟bash console
$unzip <project_name>.zip

如需要把project在pythonanywhere也打算virtual environment下運行,可以在同一console新增:
$virtualenv --python=python3.6 <project_name>_venv
$source <project_name>_venv/bin/activate
$python -m pip install pipenv
$pipenv install Django

到WEB分頁新增app,使用manual configuration,揀選python版本 同樣在WEB分頁,把virtual environment部分的路徑加入:
/home/<username>/.virtualenv/<project_name>_venv/

到code部分,把WSGI的內容 copy&paste 改為:
import os
import sys

path = '/home/<username>/<project_name>'
if path not in sys.path:
 sys.path.append(path)

os.environ['DJANGO_SETTINGS_MODULE'] = '<project_name>.settings'

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

最後在同樣WEB分頁點選reload,重新載入設定。
日後雖要修改網站時,同樣把project zipped,upload,用console unzip,reload。

Comments

There is no comment yet

New Comment

Please Login to comment