Python2.7 Django部署在Heroku记录
Git+Heroku Cli+Heroku云平台项目自动化部署和发布
项目部署在Heroku的云服务器上
备注:由于是免费使用的heroku云服务器,所以若运行项目30分钟内没人访问则项目就会被停止,需要重新运行。此外,heroku限制了运行内存和并发访问数量。
部署方式特点:
- 使用Git同步本地代码和云平台代码
- 只需配置一次heroku平台运行配置文件
- 每次Git push代码到heroku后,heroku会读取配置文件,自动重新部署项目
- Heroku Cli可以通过heroku logs –tail命令追踪部署日志,也可用heroku ps:scale web=1/0 设置运行状态
Git+Heroku Cli+Heroku自动化部署和发布流程:
-
下载Git,Git clone 项目到本地。便于本地代码-Github平台代码-Heroku平台代码三端同步。
-
下载Heroku Cli,在命令行使用heroku命令进行项目部署。
Ubuntu18.04下载方式:sudo snap install heroku --classic -
注册Heroku账户,使用免费版。
-
项目代码中添加heroku配置文件:
4.1 运行依赖库文件requirements.txt。
pip freeze >requirements.txt命令导出即可
4.2 项目运行命令文件Procfile。
新建Procfile文件,里面写web: gunicorn deep.wsgi。//deep是项目名
4.3 Python运行版本文件runtime.txt
新建runtime.txt文件,里面写python-2.7.18
4.4 在Django Web的settings.py文件中配置collectstatic //heroku使用collectstatic配置web项目静态资源
在settings.py文件中添加
BASE_DIR = os.path.dirname(os.path.abspath(file))
STATIC_ROOT = ‘staticfiles’
STATIC_URL = ‘/static/’
STATICFILES_DIRS = (os.path.join(BASE_DIR, ‘static/’),)
在urls.py里配置
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
4.5 命令行使用git add .和git commit和git push命令更新项目到Github -
命令行中使用heroku命令heroku login -i,登录heroku账号
-
命令行使用heroku create --stack heroku-18命令,在云端创建新的项目。//由由于本项目使用的python2.7开发,heroku的运行栈heroku20支持python3, heroku18支持python2,所以使用heroku18。
-
命令行使用git push heroku main命令,将项目同步到heroku云端。Heroku会自动加载requirements文件记录的依赖库,同时根据runtime文件。
-
若前面配置无误,运行heroku ps:scale web=1命令,即可发布项目
-
运行heroku open命令,即可看到web页面和对应的http地址
-
运行heroku logs –tail命令,会显示部署日志和运行日志