今天的實作內容主要根據教學網站進行。
至Heroku網站申請帳號。
在本機端安裝Heroku client。
使用Heroku client建立GIT遠端程式庫。
heroku create
heroku create [URLname]
如果有指定URLname,之後建立的網站網址會是 http://URLname.herokuapp.com;如果不指定URLname,Heroku預設會亂數產生名稱。
若之後想要改名,可以用以下指令:
heroku apps:rename new_name --app old_name
ALLOWED_HOSTS = ['.herokuapp.com', '127.0.0.1']
git add -A
git commit -m "comment"
git push heroku main
推送上去後,Heroku會自動建置網站。
第一次建置時有發生錯誤訊息,發現有兩個問題:
昨天將私人開發的套件整合進專案裡,此套件有使用beautifulsoap,但requirements.txt沒有此套件。
在settings.py中有保留開發環境的資料庫連線設定 (django.db.backends.mysq),但requirements.txt中沒有安裝mysqlclient,導致建置時會發生錯誤。
# Database
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'bookhelper',
'USER': '',
'PASSWORD': '',
'HOST': '127.0.0.1',
'PORT': '3306',
}
}
# Heroku: Update database configuration from $DATABASE_URL.
db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)
heroku run python manage.py migrate
heroku run python createsuperuser
確認目前參數設定:
heroku config
設定參數內容:
heroku config: set 參數名稱=數值
實際設定內容如下:
DJANGO_SECRET_KEY=xxxxxxxxxxxxxxxxxx
DJANGO_DEBUG=
DJANGO_SECRET_KEY基於資訊安全考量,應該要和開發環境不同。
DATABASE_URL在建置時會由Heroku自動設定。
heroku open