上一篇我們介紹完了aws如何一步一步把環境架起來
這一篇我們來順便把前面heroku的坑也填上吧
這篇就會教你如何手把手把你的code架到heroku上
廢話不多說,咱們累狗~
一樣創辦帳號這邊我們就不詳細講了
然後我們要先來下載heroku的CIL
首先到這個網頁
https://devcenter.heroku.com/articles/heroku-cli#windows
選擇windows版
下載完之後執行安裝檔
下一步下一步下一步,完成
然後我們這裡可以先檢查一下有沒有下載成功
下指令
heroku --version
如果有下載成功的話應該會跳出下面提示
如果沒有的話就去看C:/Program Files
的地方有沒有heroku
如果有的話就是沒有加到環境變數,加進去就好了
然後我們先login,這裡有兩種方法
一個輸入heroku login
會跳出網頁叫你登入
一個輸入heroku login -i
會要你在輸入帳號密碼
這裡我們選前者比較方便
如果順利登入完成應該會長這樣
接著我們先建立一個新的資料夾
就像這樣
然後把我們的code放入資料夾內
最後我們還要再下載heroku用的Python套件
雖然你windows可能用不到,但下載下來總是比較保險
pip install dj-database-url gunicorn dj-static
下載完之後前置就準備完成啦
heroku不像aws一樣會有個terminal讓你用console方式架環境
它的運作方式是當你push上去時,heroku就混根據你的各項文件架好環境跟執行所需東東了
所以這步我們要先把heroku要用的東東準備好
首先先用我們的atom打開heroku資料夾
接著我們在根目錄新增requirements.txt
輸入下面套件
Django
appnope==0.1.0
decorator==4.0.4
dj-database-url==0.3.0
dj-static==0.0.6
gnureadline==6.3.3
gunicorn==19.3.0
ipython==4.0.0
ipython-genutils==0.1.0
path.py==8.1.2
pexpect==4.0.1
pickleshare==0.5
ptyprocess==0.5
simplegeneric==0.8.1
static3==0.6.1
traitlets==4.0.0
psycopg2
當你push上去時,heroku就會找你的requirements.txt,並且安裝這些套件
接著我們在根目錄新增Procfile
並且輸入下列指令
web: gunicorn --pythonpath stonks_root stonks_root.wsgi
當push上去時,heroku會執行Procfile內的東東
這個指令就代表啟用web應用,並且使用guricorm執行stonks_root.wsgi內的東東
下一步我們就要在stonks_root內寫一個專門給heroku的setting啦
在stonks_root的資料夾下建立一個production-settings.py
然後輸入以下程式碼
# Import all default settings.
from .settings import *
import dj_database_url
DATABASES = {
'default': dj_database_url.config(),
}
# Static asset configuration.
STATIC_ROOT = 'staticfiles'
# Honor the 'X-Forwarded-Proto' header for request.is_secure().
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
# Allow all host headers.
ALLOWED_HOSTS = ['*']
# Turn off DEBUG mode.
DEBUG = False
接著修改stonks_root內的wsgi.py如下:
import os
from django.core.wsgi import get_wsgi_application
from dj_static import Cling
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "stonks_root.settings")
application = Cling(get_wsgi_application())
最後我們再來介紹一個東東叫做.gitignore
這個東西會在你git add .時自動忽略指定的檔案或副檔名
一樣在根目錄建立.gitignore
然後我們指定這三個規則在add時忽略掉
*.pyc
__pycache__
staticfiles
好啦,經過一番操作後,你的目錄內檔案列表應該會長這樣
以上我們建立heroku環境時的所有需要檔案就都建立好啦
準備完檔案之後,我們終於可以開始建立heroku環境啦
首先先下git commit三步驟
git init
git add .
git commit -m "upload to heroku"
然後建立一個新的app,我們用這個指令
heroku create stonks-heroku-ver
後面的stonks-heroku-ver代表你要建立的APP名字
然後heroku的APP名只能有小寫英文跟-
所以在建立時需要注意一下
建立完之後讓git跟你的app做連結
heroku git:remote -a stonks-heroku-ver
輸入git remote -v
檢查一下是否有連結成功
然後設定heroku要用的環境檔案
heroku config:set DJANGO_SETTINGS_MODULE=stonks_root.production_settings
準備放煙火啦~
git push heroku master
沒有煙火,也就是沒有跳錯就是成功囉~
我們先把我們的code佈署到機器上
heroku ps:scale web=1
然後下migrate建立資料庫,並且把models的東東全部設定好
heroku run python manage.py migrate
最後就是最振奮人心的時候啦
開跑~~~~~
heroku open
如果跳出來的是這個頁面,就代表成功啦~~(因為我們沒有設定預設頁面,所以找不到很正常)
以上就是heroku的環境架設啦
剩下的heroku設定由於不是我們的主題討論範圍,因此就不多介紹啦
接下來我們會把焦點重新回到aws上
教大家如何讓aws上線時自己跑django
以及如何讓django自己定時跑程式
想知道如何你不動,aws幫你做運動嗎(?
且待下回分解~