1. 程式人生 > 實用技巧 >Django專案部署到Heroku上

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