当前位置:首页 > 联系方式 >

如何部署Python Web应用:记录一次Heroku部署完整过程

编辑:北京聚贤贵都宾馆有限公司时间:2017-09-07 12:49:32阅读次数:2
如何部署Python Web应用:记录一次Heroku部署完整过程

伴随着云计算的浪潮,国内的云服务可谓多种多样,价格虽然不高,但是真正能够提供永久免费使用的,哪怕有些限制也好,似乎也找不到。

出于学习/研究/实验/测试或是真正应用等各种需求,这时我们不妨使用把应用部署到国外的Heroku云平台上,Heroku的免费版除了其提供的Postgres数据库有限制之外(小于1万条记录的小型数据库不用付费就可以添加到自己的Web应用上),其它都可以免费使用,这绝对是不二的选择。

另外一点来说,Heroku对Python的支持非常良好,所以部署起来会轻松很多,这就省去了许多不必要的麻烦了。

最近要把应用部署到Heroku上,这里把完整的部署过程分享给大家。

说明:我使用的操作系统是Ubuntu 15.10,部署的Python Web应用为基于Flask的应用,下面的部署过程都是在该操作环境下进行部署,建议大家也在Linux环境下进行部署,会方便很多。(当然你有Mac Book就更好了,只是博主没钱,用不起啦)

1.准备Git环境

要想使用Heroku,你的Web应用必须要托管在Git仓库中,如果你之前一直是使用Git的方式来作开发的,那问题就很容易解决了,相信你很明白其中的道理。如果不是的话,请按照下面我的方法来生成一个Git仓库,非常简单。

很多人觉得使用Git很麻烦,于是就放弃了Heroku平台的使用,这不能不说是一种极大的浪费:

1.首先浪费的是Heroku这么好的一个平台资源;

2.然后就是放弃了Git这么优秀的版本控制系统的使用

3.再者说就是放弃了Linux环境的使用。

其实这些对于开发来说都是非常有帮助的!所以不要觉得麻烦,只要你以后不是完全做Windows平台的开发,这些你都应该要懂,只要慢慢习惯了,后面一切就都很自然了。

第一步:安装Git

以Ubuntu为例,可以直接使用下面的命令安装:

sudoapt-getinstallgit

当然如果你正在使用的是其它版本的Linux发行版本,相信安装方法也不难。

第二步:把你的完整Web应用放到一个新的目录中

比如这里我已经有一个开发完整的Web应用,它主要有下面的这些文件和应用:

drwxrwxr-x6xpleafxpleaf40961月2916:04. drwxr-xr-x38xpleafxpleaf40961月2916:01.. drwxrwxr-x7xpleafxpleaf40961月2903:31app -rw-rw-r--1xpleafxpleaf32951月2903:31config.py -rw-rw-r--1xpleafxpleaf10831月2903:31LICENSE -rwxrwxr-x1xpleafxpleaf23911月2903:31manage.py drwxrwxr-x3xpleafxpleaf40961月2903:31migrations -rw-rw-r--1xpleafxpleaf251月2903:13Procfile -rw-rw-r--1xpleafxpleaf3761月2903:31README.md -rw-rw-r--1xpleafxpleaf761月2903:13requirements.txt drwxrwxr-x2xpleafxpleaf40961月2903:31tests

然后创建一个名为Heroku_pro的文件夹,并把上面完整的Web应用程序放进去,如下:

xpleaf@leaf:~/Heroku_pro$pwd /home/xpleaf/Heroku_pro xpleaf@leaf:~/Heroku_pro$ls appconfig.pyLICENSEmanage.pymigrationsREADME.mdrequirements.txttestsProcfile

这一步完成!

第三步:在Heroku_pro目录下生成一个Git仓库

xpleaf@leaf:~/Heroku_pro$gitinit 初始化空的Git版本库于/home/xpleaf/Heroku_pro/.git/

这时你会发现在当前目录下多了一个.git的目录:

xpleaf@leaf:~/Heroku_pro$ls-a .app.gitmanage.pyREADME.mdtests ..config.pyLICENSEmigrationsrequirements

这一步完成。

第四步:把当前目录下的所有文件都托管到本地Git仓库

xpleaf@leaf:~/Heroku_pro$gitadd. xpleaf@leaf:~/Heroku_pro$gitcommit-m"ver1.0" [master(根提交)a7cea3f]ver1.0 78fileschanged,3350insertions(+) createmode100644LICENSE createmode100644README.md createmode100644app/__init__.py createmode100644app/api_1_0/__init__.py createmode100644app/api_1_0/authentication.py ......

Ok,这一步完成。

关于Git的使用显然不是这里要讨论的重点,这里只是为没有用过Git的朋友提供一种临时的解决方案。

2.注册Heroku账户

跟目前国内的大多数云平台一样,首先你也需要注册一个账号,可以在下面的链接进行注册:

https://www.heroku.com/

wKiom1arIdeCH2S0AAAwrabARcc665.png

3.安装Heroku Toolbelt客户端

Toolbelt是Heroku的命令行工具,使用该客户端的好处是,我们完全可以在本地通过命令行操作的方式来管理我们托管在Heroku上的Web应用。

以Ubuntu为例,参考官方的安装文档:

wKioL1arJNPyFfuxAAFTt-ic4Oo654.png

我们使用下面的命令来进行安装就可以了:

wget-O-https://toolbelt.heroku.com/install-ubuntu.sh|sh

可以参考这里的官方文档:https://toolbelt.heroku.com/

4.登陆Heroku

在刚刚的Heroku_pro目录下执行下面的命令,登陆到Heroku上:

xpleaf@leaf:~/Heroku_pro$herokulogin EnteryourHerokucredentials. Email:[email protected] Password(typingwillbehidden): [email protected] xpleaf@leaf:~/Heroku_pro$

注意登陆成功后的提示:Logged in as [email protected]

需要注意的是,login命令默认会自动为你当前的主机创建SSH公钥并上传,SSH公钥非常重要,在你后面执行git push命令的时候是必须要用到的,不过不用担心,heroku的客户端会自动帮我们处理好。当然你也可以手动上传,只需要执行命令:heroku keys:add。

5.使用Heroku客户端创建app程序

所谓的app程序其实就是herokuapp.com的一个子域名,当你在Heroku创建了一个名为my-heroku-app-cn的app程序之后,如果你部署成功,你就可以直接通过地址https://my-heroku-app-cn.herokuapp.com来访问你的Web应用,因此名字要注意,不能使用别人已经使用过的。我们下面就来创建一个。

xpleaf@leaf:~/Heroku_pro$herokucreatemy-heroku-app-cn Creatingmy-heroku-app-cn...done,stackiscedar-14 https://my-heroku-app-cn.herokuapp.com/|https://git.heroku.com/my-heroku-app-cn.git

出现上面的提示,就说明程序创建成功了!Heroku还分配了一个Git服务器给我们,地址为https://git.heroku.com/my-heroku-app-cn.git

当然,其实app程序的名字也是可以改的,你只要登陆官居网,在你的个人信息页里就可以修改。

6.配置数据库

Heroku以扩展的方式支持Postgres数据库,只是有些限制而已,正如前面所说。这里我们就使用Postgres数据库,这也意味着,你需要在你的Web应用源代码中添加相应的数据库路径,这个我们待会再说。

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:武汉网页制作 https://www.feimao666.com

上一篇:wordpress的PHP函数参考大全 下一篇:最后一页

相关阅读