在Heroku云平台上部署Python的Django框架的教程


Posted in Python onApril 20, 2015

Heroku是一个很棒的平台,它有很多的控件,并且搭建环境相对来说也比较容易。本指南中,我将一步一步指导你在Heroku平台上部署一个简单地Django应用
搭建开发环境
Heroku工具链

假设你已经在Heroku平台上注册了一个帐户,并且在里面创建了一款应用,为了一会儿通过CLI与Heroku交互,你需要安装Heroku工具链。在这篇指南中,我们用"Sample-Project"作为应用的名字。
Git仓库

在部署你的应用到Heroku之前,你需要先将你的代码签入git仓库中。Heroku提供的git仓库信息可以在你的应用设置页中找到。
 

one git@heroku.com:sample-project.git

Python 和 Virtualenv

如果这不是你的第一款python应用,你或许已经把环境搭建起来了。然后,不同的Pyton版本之间存在兼容性问题,因此你应该在开发你的Python应用时使用Virtualenv命令来创建一个虚拟的环境。
 

# Install pip 
$ [sudo] python get-pip.py 
 
# Install Virtualenv
$ [sudo] pip install virtualenv 
 
# Create a virtual environment
$ virtualenv venv
 
# Activate venv
$ source venv/bin/activate

创建一款Django应用

建议你安装django-toolbelt,它由以下几部分组成。

- Django
- Gunicorn (WSGI服务器)
- dj-database-url (一个Django配置工具)
- dj-static (一个Django静态文件服务器)

(venv)$ pip install django-toolbelt
(venv)$ cd Sample-Project
 
# Create a Django project name Sample_Project
# A valid Django project name can't contain dash
(venv)$ django-admin.py startproject Sample_Project .
 
# Create the requirements file  
(venv)$ pip freeze > requirements.txt

 
部署你的代码

1. 创建ProcFile
ProcFile被用来声明应该被执行的开始web dyno命令。这个文件应该被放在manage.py(指定的)文件夹中。简单地创建一个ProcFile文件,如下面的一行例子所示。

unicorn Sample_Project.wsgi --log-file -

2. 查看你希望部署代码的远程服务器简称。下面这个例子显示地是配置仅有一个简单远程服务器的例子,它的简称是origin。(假设)你可能已经配置过很多的远程服务器。
 

$ git remote -v
origin git@heroku.com:Sample-Project.git (fetch)
origin git@heroku.com:Sample-Project.git (push)

3. 部署你的代码

使用"git push"去部署你的代码。
 

$ git push origin master
Initializing repository, done.
Counting objects: 11, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (11/11), 2.64 KiB | 0 bytes/s, done.
Total 11 (delta 0), reused 0 (delta 0)
 
-----> Python app detected
-----> Installing runtime (python-2.7.8)
-----> Installing dependencies with pip
    Downloading/unpacking Django==1.6.6 (from -r requirements.txt (line 1))
    Downloading/unpacking dj-database-url==0.3.0 (from -r requirements.txt (line 2))
     Downloading dj_database_url-0.3.0-py2.py3-none-any.whl
    Downloading/unpacking dj-static==0.0.6 (from -r requirements.txt (line 3))
     Downloading dj-static-0.0.6.tar.gz
...
To git@heroku.com:Sample-Project.git
 * [new branch]   master -> master

4. 验证你部署的代码
 

$ heroku open

你应该看到标准的Django开始页面(显示的是)“It worked! Congratulations on your first Django-powered page.”

5. 使用dyno测量你的应用规模
 

$ heroku ps:scale web=1
Scaling dynos... done, now running web at 1:1X.
Python 相关文章推荐
python网络编程学习笔记(二):socket建立网络客户端
Jun 09 Python
python标准算法实现数组全排列的方法
Mar 17 Python
低版本中Python除法运算小技巧
Apr 05 Python
Python循环语句中else的用法总结
Sep 11 Python
python Flask实现restful api service
Dec 04 Python
Python创建字典的八种方式
Feb 27 Python
快速查找Python安装路径方法
Feb 06 Python
Python接口测试结果集实现封装比较
May 01 Python
JAVA及PYTHON质数计算代码对比解析
Jun 10 Python
Python的scikit-image模块实例讲解
Dec 30 Python
Pillow图像处理库安装及使用
Apr 12 Python
Python中的socket网络模块介绍
Jul 23 Python
从Python程序中访问Java类的简单示例
Apr 20 #Python
把项目从Python2.x移植到Python3.x的经验总结
Apr 20 #Python
python使用7z解压apk包的方法
Apr 18 #Python
python使用装饰器和线程限制函数执行时间的方法
Apr 18 #Python
python使用multiprocessing模块实现带回调函数的异步调用方法
Apr 18 #Python
python对指定目录下文件进行批量重命名的方法
Apr 18 #Python
python开启多个子进程并行运行的方法
Apr 18 #Python
You might like
PHP树的代码,可以嵌套任意层
2006/10/09 PHP
使用PHP的日期与时间函数技巧
2008/04/24 PHP
PHP 日常开发小技巧
2009/09/23 PHP
php中取得文件的后缀名?
2012/02/20 PHP
php使用sql server验证连接数据库的方法
2014/12/25 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
php实现的http请求封装示例
2016/11/08 PHP
PHP+MySQL实现模糊查询员工信息功能示例
2018/06/01 PHP
YII框架关联查询操作示例
2019/04/29 PHP
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
2019/06/12 PHP
添加到收藏夹代码(兼容几乎所有的浏览器)
2007/01/09 Javascript
使用AOP改善javascript代码
2015/05/01 Javascript
jQuery原型属性和原型方法详解
2015/07/07 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
2016/09/20 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
vue实现输入一位数字转汉字功能
2019/12/13 Javascript
完美解决vue 中多个echarts图表自适应的问题
2020/07/19 Javascript
Python实现对excel文件列表值进行统计的方法
2015/07/25 Python
Python3实现的简单工资管理系统示例
2019/03/12 Python
python粘包问题及socket套接字编程详解
2019/06/29 Python
python正则表达式匹配不包含某几个字符的字符串方法
2019/07/23 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
初级软件工程师面试题 Junior Software Engineer Interview
2015/02/15 面试题
某公司面试题
2012/03/05 面试题
经贸日语专业个人求职信
2013/12/13 职场文书
中文专业学生自我评价范文
2014/02/06 职场文书
环境建设实施方案
2014/03/14 职场文书
文明演讲稿范文
2014/05/12 职场文书
服装发布会策划方案
2014/05/22 职场文书
应届毕业生自荐信
2014/05/28 职场文书
师范生自荐信模板
2014/05/28 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
阿凡达观后感
2015/06/10 职场文书
2016党风廉政建设心得体会范文
2016/01/25 职场文书
python对文档中元素删除,替换操作
2022/04/02 Python
html解决浏览器记住密码输入框的问题
2023/05/07 HTML / CSS