您的位置:首页 > 编程语言 > Go语言

使用Heroku搭建Django应用

2015-07-31 14:01 513 查看
Heroku对django的支持还是不错的,虽然没有pythonanywhere那样简单地给个shell随便折腾,关键功能也是没少。

主要参考:

官方文档 Getting Started with Django on Heroku

How to deploy django app to heroku?

注册登陆啥的就不说了,要注意的几个地方,一是不能用163邮箱,原因我也不太清楚,二是使用Heroku和git脱不了关系,我个人觉得这里的邮箱最好是也和git绑定了。

先开始看的是getting started with python不是django,不过它给的例子就是一个django project,先来看看这个例子好了。

安装Heroku Toolbelt

麻烦玩意儿= =为啥openshift和这个都要安装个啥才能传输,顿觉pythonanywhere方便死了。

安装的时候如果电脑上已经有了git就不用选full install了,选custom install然后把git和ssh取消掉。

还有个坑,文档里面写在cmd里面使用heroku login,但是并没有卵用,看了一个博客才知道要用git bash打开。。。






例子

走了一遍文档流程弄了一个sample app,这里的创建app都是用过heroku指令完成的,差不多是把一个本地文件和app通过某种方式连接起来然后同步代码。大概流程是这样

heroku login 登陆,这里的账号密码我已经和git弄混了。。。

git clone https://github.com/heroku/python-getting-started.git这里只是clone一个sample下来做示范,接下来的操作要在clone下来的文件夹里执行才可以。

heroku create 创建一个app,可以接参数指定app名字,不接的话会随机一个,这一步会生成一个仓库https://git.heroku.com/app-name.git,然后这个仓库和刚刚clone下来的文件夹链接起来

git push heroku master把这个sample app文件夹push到刚刚创建的远程仓库,这一步会有很多输出,因为在远程把requirement.txt里面的东西全安装了,这边都会有提示。



heroku open 这个指令似乎是打开浏览器访问这个网页→_→

部署自己的应用

文档里面有些指令不是必须的,比如本地的虚拟环境等等,实际上这个部署过程的关键就在于和远端代码库的链接,我这里的情况是我有一个现成的本地app,要把它挂上去,在网站上我已经创建好了一个app,现在要把这两个链接起来。

步骤说的很清晰,不过还有一些细节,在这个app的文件夹需要一些配置文件。

配置文件

注意到之前例子的文件夹里面有一些配置文件

Procfile

web: gunicorn Sample_Project.wsgi --log-file -


具体什么意思不太清楚,不过要把Sample-Project改成自己的app文件夹名,具体就是装着wsgi.py这个文件的文件夹名字。

Procfile.windows

web: python manage.py runserver 0.0.0.0:5000


指令倒是看得懂但还是不明白起的什么作用

requirement.txt

dj-database-url==0.3.0
Django==1.8.1
django-postgrespool==0.3.0
gunicorn==19.3.0
psycopg2==2.6
SQLAlchemy==1.0.4
whitenoise==1.0.6


projects需要安装的套件,在自己的projects里面按照需要修改就行。

runtime.txt

python-2.7.9


python版本,额也是直接复制过来。

仓库链接

需要给本地仓库添加一个远程链接到Heroku的app仓库,不想和之前的弄混所以复制了一下文件夹,改了个名字,把.git文件夹删了。




然后根据上面的流程操作完毕,访问。

看得出来可以访问了,不过数据库没有同步过去。。访问页面都是数据库找不到的问题,于是又去百度数据库处理。

数据库配置

我的app文件夹有一个sqlite3的db文件,不过完全木有用…在Heroku应该是有一些别的方式使用数据库,需要几个步骤。

settings.py

import dj_database_url
DATABASES['default'] = dj_database_url.config()


在数据库配置的部分后面加上。

生成数据库

然后依然是在git bash里面操作,代码更新完之后运行:

heroku run python manage.py makemigrations
heroku run python manage.py migrate


这下就没问题了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: