[Day 27] 中场休息 - 换边发球,heroku布署完整步骤

上一篇我们介绍完了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开跑

我们先把我们的code布署到机器上

heroku ps:scale web=1

然後下migrate建立资料库,并且把models的东东全部设定好

heroku run python manage.py migrate

最後就是最振奋人心的时候啦
开跑~~~~~

heroku open


如果跳出来的是这个页面,就代表成功啦~~(因为我们没有设定预设页面,所以找不到很正常)

以上就是heroku的环境架设啦
剩下的heroku设定由於不是我们的主题讨论范围,因此就不多介绍啦
接下来我们会把焦点重新回到aws上
教大家如何让aws上线时自己跑django
以及如何让django自己定时跑程序
想知道如何你不动,aws帮你做运动吗(?
且待下回分解~


<<:  Day 23 Odoo 预设domain怎麽做?

>>:  追求JS小姊姊系列 Day23 -- 头等工具人也看安眠书店? 认识闭包让你独占变数

【从零开始的 C 语言笔记】第八篇-printf 介绍与应用

不怎麽重要的前言 上一篇我们介绍了与输入输出格式相关的语法,想必大家应该多少知道要怎麽使用了,如果有...

【Day 15】Python MySQL

今天发烧用手机打字 後面明天一定补完QQ 明天是不是该想想要做什麽mysql小projectㄌ.....

<Day20> Subscribe — 订阅及时BidAsk五档报价资料

● 这章会示范如何订阅及时BidAsk五档报价资料 什麽是BidAsk? "Bid&quo...

开源网路钓鱼框架-Gophish(上)

开赛时提到的社交工程钓鱼邮件 除了快速好上手的SET工具之外 gophish具有美美的UI介面,简洁...

ActionScript 语言和你 SAY HELLO!!

第十六天 各位点进来的朋友,你们好阿 小的不才只能做这个系列的文章,但还是希望分享给点进来的朋友,知...