Django项目部署到Heroku上
以下有些步骤中会访问外网,可能需要FQ,需要提前设置好
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 应用名
这是创建的应用名已经存在,重新更换个应用名就行
这是创建好的Heroku应用,包含部署好的网站地址
使用网址访问创建的网站,你也可以在命令行输入 heroku open 会自动打开网站
登录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上,如果不需要提交到github这步就不要写 git push heroku master #把本地文件部署到heroku上
#如果本地文件修改就需要重新执行所有步骤
git add -A #只提交修改的文件
git commit -m '提交信息'
git push heroku master
在把项目提交到heroku上时报错,python的版本不对
重新修改python的版本python3.6.10 ,提交上去自动下载需要的模块 (这里我也不太清楚是修改了runtime.txt文件内容的格式原因,还是修改python版本的原因,自己试一下)
11.使用heroku open打开网站,输入正确地址,报错,是因为数据库还没有安装
12.安装数据库
heroku默认支持Postgres数据库,如果你本地计算机没有Postgres数据库,你需要下载安装。然后在Heroku上也安装Postgres数据库
你可以先检查Heroku是否已经安装了Postgres数据库
heroku addons
如果没有安装数据库,就手动安装
heroku addons:create heroku-postgresql:hobby-dev #设置hobby-dev是免费的版本
在这个项目中我想使用Mysql数据库,所以手动安装mysql数据库,在官网找mysql的插件
官网:https://elements.heroku.com/addons
点击此按钮
输入以下内容,这里安装插件需要进行信用卡验证,因为是国外的信用卡,我没有,所以下面的步骤就没进行了
13.创建表
如果你是使用postgres数据库,heroku默认支持
只需要在settings.py中设置
import dj_database_url DATABASES['default'] = dj_database_url.config()
然后创建表
heroku run python manage.py makemigrations
heroku run python manage.py migrate
Heroku部署Django项目youtube视频(需要FQ): https://www.youtube.com/watch?v=6DI_7Zja8Zc