Django项目部署到Heroku上

以下有些步骤中会访问外网,可能需要*,需要提前设置好

1.到HeroKu官网注册一个账号,邮箱使用gmail等外国邮箱, heroku官网:https://www.heroku.com/

2.本地需要安装git

3.下载安装HeroKu CLI(自己根据不同电脑环境下载对应版本),这个就相当于一个客户端

下载地址:https://devcenter.heroku.com/articles/heroku-cli

4.安装必要的几个第三方库

以下命令皆是在虚拟环境命令行 
pip install dj-database-url     #帮助django与Heroku使用的数据库进行通信
pip install dj-static           #帮助Django正确的管理静态文件
pip install static3             #与dj-static相同
pip install gunicorn            #在在线环境中支持应用程序提供的服务
pip install django-heroku

5.使用该命令生成requirements.txt文件

pip freeze > requirements.txt

文件内容如下

dj-database-url==0.5.0
dj-static==0.0.6
Django==1.11
django-heroku==0.3.1     #安装这个自带psycopg2和whitenoise
gunicorn==20.0.4
psycopg2==2.8.4
PyMySQL==0.9.3       #这里django使用mysql数据库
pytz==2019.3
static3==0.7.0
whitenoise==5.0.1

6.指定python版本:项目根目录下创建runtime.txt

python-3.6.4       #设置自己的python版本,如果提交代码到heroku的时候因为版本报错,你就改一个python版本再提交
#官网指定Python版本: https://devcenter.heroku.com/articles/python-support#supported-runtimes

7.在项目根路径下创建Procfile  注意该文件没有后缀

Procfile告诉Heroku启动哪些进程,无扩展名,保存到项目根目录下。

web: gunicorn learning.wsgi --log-file -        #中间的learning.wsgi需要替换成项目名.wsgi

8.创建Heroku应用

 

heroku create 应用名

 

这是创建的应用名已经存在

Django项目部署到Heroku上

 

 

 这是创建好的Heroku应用,包含部署好的网站地址

Django项目部署到Heroku上

 

 

使用网址访问创建的网站,你也可以在命令行输入 heroku open   会自动打开网站

Django项目部署到Heroku上

 

 

登录Heroku官网也可以看到新创建的应用

Django项目部署到Heroku上

9.修改settings.py文件

#添加如下代码
import django_heroku
django_heroku.settings(locals())

#设置静态路径STATIC_ROOT
STATIC_ROOT = os.path.join(BASE_DIR,'staticfiles')

#修改ALLOWED_HOSTS
ALLOWED_HOSTS=['wangcccomments.herokuapp.com'] #wangcccomments是之前新建的应用名

10.设置好这些就把代码提交到git,然后部署到heroku上

#先进入项目目录
git init
git add .
git commit -m '提交信息'
git push -u origin master #这步是把本地文件提交到github上,如果不需要提交这步就不要写 git push heroku master #把本地文件部署到heroku上

#如果本地文件修改就需要重新执行所有步骤
git add -A
git commit -m '提交信息'
git push heroku master

在把项目提交到heroku上时报错,python的版本不对

Django项目部署到Heroku上

 

重新修改python的版本python3.6.10 ,提交上去自动下载需要的模块   (这里我也不太清楚是修改了runtime.txt文件内容的格式原因,还是修改python版本的原因,自己试一下)

Django项目部署到Heroku上

 

11.使用heroku open打开网站,输入正确地址,报错,是因为数据库还没有安装

Django项目部署到Heroku上

 

 12.安装数据库

heroku默认支持Postgres数据库,如果你本地计算机没有Postgres数据库,你需要下载安装。然后在Heroku上也安装Postgres数据库

你可以先检查Heroku是否已经安装了Postgres数据库

heroku addons

Django项目部署到Heroku上

如果没有安装数据库,就手动安装

heroku addons:create heroku-postgresql:hobby-dev             #设置hobby-dev是免费的版本

在这个项目中我想使用Mysql数据库,所以手动安装mysql数据库,在官网找mysql的插件

官网:https://elements.heroku.com/addons

Django项目部署到Heroku上

 

 点击此按钮

 

 

 

 输入以下内容

Django项目部署到Heroku上

 

上一篇:Heroku 的“得”与“失”


下一篇:python基础学习[python编程从入门到实践读书笔记(连载三)]:django学习笔记web项目