Heroku网站介绍
Heroku是一个基于Web的平台,可以让你免费部署Web应用程序。Heroku是老牌的云平台之一,最初它仅支持Ruby,但后来增加了对Java、Node.js、Scala、Clojure、Python等语言的支持。
Heroku注册
登录官方网站:https://www.heroku.com/,点击注册按钮进行免费账号注册。
注意:Heroku账号的注册建议使用翻墙软件后访问,要不然可能会遇到无法加载图片验证的问题,而无法注册成功。
heroku命令行工具安装
接下来需要安装Heroku-cli命令行工具,请访问网址: https://devcenter.heroku.com/articles/heroku-cli 下面以Ubuntu系统为例,在终端输入下面命令来安装
# 同样建议使用翻墙软件后再输入命令操作
$ sudo add-apt-repository "deb https://cli-assets.heroku.com/branches/stable/apt ./"
$ curl -L https://cli-assets.heroku.com/apt/release.key | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install heroku
Windows和Mac操作系统,请根据自己的操作系统按官方的文档说明来操作。
部署Django应用程序
在部署之前请检查是否正确安装了Django需要的第三方包,并且创建包含包列表的“requirements.txt”文件。 另外还需要有指定Python版本的“runtime.txt”文件,以及指定heroku启动那些进程的“Procfile”文件。 最后修改“wsgi.py”文件和"settings.py",在文件中增加Heroku的环境设置。 还有heroku的部署使用到了git命令的推送功能,所以需要将Django项目先提交到Git版本管理仓库。
完成上面的一系列准备工作后,终于可以开始将项目部署到Heroku服务器中。
在终端中输入下面命令:
$ heroku login
接下来需要输入刚刚注册成功的账号和密码,输出如下:
Enter your Heroku credentials.
Email: test@test.com
Password (typing will be hidden):
Logged in as test@test.com
继续在项目所在的根目录下,输入下面命令:
$ heroku create
命令执行成功后会显示如下:
--snip(略)--
Git remote heroku added
继续输入下面命令,这个命令让git将项目的master分支的代码推送到heroku容器中,heroku会自动创建项目:
$ git push heroku master
输出如下:
对象计数中: 19, 完成.
Delta compression using up to 4 threads.
压缩对象中: 100% (18/18), 完成.
写入对象中: 100% (19/19), 3.30 KiB | 0 bytes/s, 完成.
Total 19 (delta 13), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
remote:
remote: -----> Python app detected
remote: $ pip install -r requirements.txt
--snip(略)--
remote: https://learn-log4kyle.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy.... done.
To https://git.heroku.com/learn-log4kyle.git
7956bd0..fb845a8 master -> master
注意: 这里如果遇到错误,提示修改DISABLE_COLLECTSTATIC的设置的话,就执行下面命令来更改设置:
$ heroku config:set DISABLE_COLLECTSTATIC=1
最后,通过可以使用heroku open命令在浏览器中打开刚刚部署成功的应用程序。
$ heroku open
小结
本文只是简单介绍如何将Django开发的web应用程序部署到heroku网站上,还有很多heroku的功能没有涉及。 而且Heroku的部署流程以后可能会调整,所以请通过阅读Heroku的python相关官方文档来了解更多。
参考文献:
《Python编程从入门到实践》 Eric Matthes 著