部署Flask App到Heroku完整过程

0, Heroku

Heroku是老牌的免费云空间,可以很好的满足我们学习/研究/实验/测试的目的,同时,他对Python的支持非常良好。
下面来介绍如何把已经写完的Flask程序部署到Heroku平台。
(我使用的操作系统是OS X,Linux平台下操作类似)

1, 注册Heroku账号

进入Heroku官网进行注册, 163,QQ等应该是不支持的,可以翻墙Gmail或者Apple的iCloud邮箱去注册都可以 https://www.heroku.com/

2, 下载Heroku Toolbelt客户端

安装这个客户端就可以让我们以命令行来操作管理我们在Heroku上的程序。
下载安装方法详见官方文档https://devcenter.heroku.com/articles/heroku-cli#download-and-install

3, 登录Heroku

在终端输入heroku login 按提示输入刚刚注册的账号密码

MacBook:MyBlog$ heroku login
Enter your Heroku credentials.
Email: youremail@xxx.com
Password (typing will be hidden): 
Logged in as youremail@xxx.com
MacBook:MyBlog$

最后的logged in as youremail@xxx.com 表示登录成功

4, 准备你的Web App

要使用Heroku部署Web App就要使用Git仓库托管,用git push的方法将程序放上Heroku。git是很优秀的版本托管工具,开发自然少不了和git打交道

4.1安装Git

下载安装 https://git-scm.com/downloads
使用命令行查看git版本

git --version
4.2 生成git仓库

在Web程序的目录下,命令行输入

git init #初始化git仓库

接着将文件托管到git仓库

git add .
git commit -m "v1.0" #版本号v1.0
5, 用Heroku创建app

命令行

heroku create <appname>         #你的app的名字
heroku apps                     #查找你的heroku的app程序
heroku apps:destory <appname>   #删除app程序

创建好app程序后开始配置数据库,Heroku可以支持Postgre数据库,这里我们就用这个。

$heroku addons:create heroku-postgresql:hobby-dev
Database has been created and is available
 ! This database is empty. If upgrading, you can transfer
 ! data from another database with pg:copy
Created postgresql-asymmetrical-71831 as DATABASE_URL
Use heroku addons:docs heroku-postgresql to view documentation

出现以上字样表示配置成功

6, 检查我们的必要文件

Heroku要求在我们的Web程序(Python Web)目录中必须要有下面的两个文件:
requirements.txt 和Profile,前者我们都知道,就是放置了各种扩展包的,后者Profile的内容就是

 web: gunicorn manage:app
7, 进行git push部署
git push heroku master
$ git push heroku master
对象计数中: 97, 完成.
Delta compression using up to 4 threads.
压缩对象中: 100% (90/90), 完成.
写入对象中: 100% (97/97), 35.04 KiB | 0 bytes/s, 完成.
Total 97 (delta 22), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote: 
remote: -----> Python app detected
remote: -----> Installing runtime (python-2.7.11)
remote: -----> Installing dependencies with pip
remote:        Collecting Flask==0.10.1 (from -r requirements/common.txt (line 1))
..........
remote: -----> Preparing static assets
remote:        Collectstatic configuration error. To debug, run:
remote:        $ heroku run python manage.py collectstatic --noinput
remote: 
remote: -----> Discovering process types
remote:        Procfile declares types -> web
remote: 
remote: -----> Compressing...
remote:        Done: 37.2M
remote: -----> Launching...
remote:        Released v6
remote:        https://my-heroku-app-cn.herokuapp.com/ deployed to Heroku
remote: 
remote: Verifying deploy.... done.
To https://git.heroku.com/my-heroku-app-cn.git
 * [new branch]      master -> master

以上就说明git push成功了

接着,进行初始化

$ heroku run python manage.py deploy   
$ heroku restart   #重新启动 
8, 开始访问

以上都完成后,我们就可以开始访问我们的web 程序,

<appname>.heroku.com
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值