Django專案部署到Heroku上
以下有些步驟中會訪問外網,可能需要翻牆,需要提前設定好
1.到HeroKu官網註冊一個賬號,郵箱使用gmail等外國郵箱, heroku官網:https://www.heroku.com/
2.本地需要安裝git
3.下載安裝HeroKu CLI(自己根據不同電腦環境下載對應版本),這個就相當於一個客戶端
下載地址:https://devcenter.heroku.com/articles/heroku-cli
4.安裝必要的幾個第三方庫
以下命令皆是在虛擬環境命令列
pip install dj-database-url #幫助django與Heroku使用的資料庫進行通訊
pip install dj-static #幫助Django正確的管理靜態檔案
pip install static3 #與dj-static相同
pip install gunicorn #在線上環境中支援應用程式提供的服務
pip install django-heroku
5.使用該命令生成requirements.txt檔案
pip freeze > requirements.txt
檔案內容如下
dj-database-url==0.5.0
dj-static==0.0.6
Django==1.11
django-heroku==0.3.1 #安裝這個自帶psycopg2和whitenoise
gunicorn==20.0.4
psycopg2==2.8.4
PyMySQL==0.9.3 #這裡django使用mysql資料庫
pytz==2019.3
static3==0.7.0
whitenoise==5.0.1
6.指定python版本:專案根目錄下建立runtime.txt
python-3.6.4 #設定自己的python版本,如果提交程式碼到heroku的時候因為版本報錯,你就改一個python版本再提交
#官網指定Python版本: https://devcenter.heroku.com/articles/python-support#supported-runtimes
7.在專案根路徑下建立Procfile 注意該檔案沒有後綴
Procfile告訴Heroku啟動哪些程序,無副檔名,儲存到專案根目錄下。
web: gunicorn learning.wsgi --log-file - #中間的learning.wsgi需要替換成專案名.wsgi
8.建立Heroku應用
heroku create 應用名
這是建立的應用名已經存在,重新更換個應用名就行
這是建立好的Heroku應用,包含部署好的網站地址
使用網址訪問建立的網站,你也可以在命令列輸入 heroku open 會自動開啟網站
登入Heroku官網也可以看到新建立的應用
9.修改settings.py檔案
#新增如下程式碼
import django_heroku
django_heroku.settings(locals())
#設定靜態路徑STATIC_ROOT
STATIC_ROOT = os.path.join(BASE_DIR,'staticfiles')
#修改ALLOWED_HOSTS
ALLOWED_HOSTS=['wangcccomments.herokuapp.com'] #wangcccomments是之前新建的應用名
10.設定好這些就把程式碼提交到git,然後部署到heroku上
#先進入專案目錄
git init
git add .
git commit -m '提交資訊'
git push -u origin master #這步是把本地檔案提交到github上,如果不需要提交到github這步就不要寫
git push heroku master #把本地檔案部署到heroku上
#如果本地檔案修改就需要重新執行所有步驟
git add -A #只提交修改的檔案
git commit -m '提交資訊'
git push heroku master
在把專案提交到heroku上時報錯,python的版本不對
重新修改python的版本python3.6.10 ,提交上去自動下載需要的模組 (這裡我也不太清楚是修改了runtime.txt檔案內容的格式原因,還是修改python版本的原因,自己試一下)
11.使用heroku open開啟網站,輸入正確地址,報錯,是因為資料庫還沒有安裝
12.安裝資料庫
heroku預設支援Postgres資料庫,如果你本地計算機沒有Postgres資料庫,你需要下載安裝。然後在Heroku上也安裝Postgres資料庫
你可以先檢查Heroku是否已經安裝了Postgres資料庫
heroku addons
如果沒有安裝資料庫,就手動安裝
heroku addons:create heroku-postgresql:hobby-dev #設定hobby-dev是免費的版本
在這個專案中我想使用Mysql資料庫,所以手動安裝mysql資料庫,在官網找mysql的外掛
官網:https://elements.heroku.com/addons
點選此按鈕
輸入以下內容,這裡安裝外掛需要進行信用卡驗證,因為是國外的信用卡,我沒有,所以下面的步驟就沒進行了
13.建立表
如果你是使用postgres資料庫,heroku預設支援
只需要在settings.py中設定
import dj_database_url
DATABASES['default'] = dj_database_url.config()
然後建立表
heroku run python manage.py makemigrations
heroku run python manage.py migrate
Heroku部署Django專案youtube視訊(需要翻牆):https://www.youtube.com/watch?v=6DI_7Zja8Zc