在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 解析XML python模块xml.dom解析xml实例代码
Feb 07 Python
Python文件夹与文件的操作实现代码
Jul 13 Python
python机器学习之神经网络(二)
Dec 20 Python
Python实现的rsa加密算法详解
Jan 24 Python
详解python实现识别手写MNIST数字集的程序
Aug 03 Python
Python数据类型之Dict字典实例详解
May 07 Python
在python 中split()使用多符号分割的例子
Jul 15 Python
Python类中方法getitem和getattr详解
Aug 30 Python
pip install python 快速安装模块的教程图解
Oct 08 Python
python 申请内存空间,用于创建多维数组的实例
Dec 02 Python
简单了解Python变量作用域正确使用方法
Jun 12 Python
最简单的matplotlib安装教程(小白)
Jul 28 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
dedecms系统常用术语汇总
2007/04/03 PHP
PHP 年龄计算函数(精确到天)
2012/06/07 PHP
php 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
利用php下载xls文件(自己动手写的)
2014/04/18 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
php 输出json及显示json中的中文汉字详解及实例
2016/11/09 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
php设计模式之职责链模式实例分析【星际争霸游戏案例】
2020/03/27 PHP
优秀js开源框架-jQuery使用手册(1)
2007/03/10 Javascript
JQuery 国际象棋棋盘 实现代码
2009/06/26 Javascript
extJs 常用到的增,删,改,查操作代码
2009/12/28 Javascript
javascript图像处理—仿射变换深度理解
2013/01/16 Javascript
js简易namespace管理器 实例代码
2013/06/21 Javascript
jQuery中选择器小问题(新人难免遇到)
2014/03/31 Javascript
使用nodejs、Python写的一个简易HTTP静态文件服务器
2014/07/18 NodeJs
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
javascript图片预览和上传(兼容IE)
2017/03/15 Javascript
discuz表情的JS提取方法分析
2017/03/22 Javascript
Javascript(es2016) import和require用法和区别详解
2017/08/11 Javascript
js实现图片3D轮播效果
2019/09/21 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
2020/05/23 Javascript
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
Python脚本简单实现打开默认浏览器登录人人和打开QQ的方法
2016/04/12 Python
Python基于回溯法子集树模板解决取物搭配问题实例
2017/09/02 Python
flask框架视图函数用法示例
2018/07/19 Python
对python的输出和输出格式详解
2018/12/08 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
2019/04/11 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
python 实现性别识别
2020/11/21 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
Python性能测试工具Locust安装及使用
2020/12/01 Python
宝拉珍选澳大利亚官方购物网站:Paula’s Choice澳大利亚
2016/09/13 全球购物
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
学习雷锋做美德少年寄语大全
2014/04/09 职场文书
阳光体育活动实施方案
2014/05/25 职场文书
研究生导师推荐信
2014/09/06 职场文书