python - Django 应用程序的 Procfile 中应该包含什么?
问题描述
Procfile
Heroku 上的 Django 应用程序应该包含哪些内容?
我试过了:
web: python appname.py
因为我找到了一个类似 Python 应用程序的示例。
除了我可能需要使用 gunicorn 而不是 python 之外,进一步的搜索并没有让事情变得更清楚。我发现了各种建议各种格式的帖子,例如:
web gunicorn
web:gunicorn
web: gunicorn
我不知道 gunicorn 之后应该发生什么,有些帖子有编程语言,有些有 IP 地址,有些还有其他各种东西。
有人建议运行:
heroku ps:scale web=1
但这会导致错误:
Scaling dynos... !
! Couldn't find that process type (web).
我只是没有头绪,不知道该转向哪里。
自发布以来,我已经观看了一些有关此的视频并尝试过:
web: gunicorn appname.wsgi
在我的 Procfile 中,但它仍然不起作用,仍然导致:
at=error code=H14 desc="No web processes running"
解决方案
您需要 3 个文件才能将 django 应用程序成功部署到 Heroku。
Procfile
runtime.txt
requirements.txt
这两个模块应该在您的 requirements.txt 中
在Procfile
中,键入
release: python manage.py migrate
web: gunicorn yourprojectname.wsgi
第一行解释了部署的类型,
release
这意味着生产版本,然后migrate
我想你知道会做什么。第二行说明 Gunicorn 是Python WSGI HTTP Server for UNIX
像这样输入
runtime.txt
你的python版本python-3.9.6
您可以使用此终端命令查看您拥有的 python 版本python --version
- 最后,您将需要,如果您在虚拟环境中操作,您可以使用while激活
requirements.txt
来生成它。pip freeze > requirements.txt
venv
项目启动步骤,最简单的方法:
- 停用您
venv
的,以防万一 - 转到heroku仪表板
- 创建一个应用程序并选择一个有意义的名称和免费计划,这将允许您免费运行 1 个工人
- 复制它的 url:
herokuappname.herokuapp.com
然后 insettings.py
,粘贴进去ALLOWED_HOSTS = ['herokuappname.herokuapp.com']
DEBUG = False
生产环境中不允许设置、调试- 然后在您的终端中导航到项目文件夹并一一键入以下命令
Heroku login
# 登录您的 Heroku 帐户heroku git:remote -a yourAppname
# 连接到您已经创建的应用程序git init
# 初始化你的仓库git add .
# 将所有项目的文件添加到初始化的 repogit commit -m "first push"
# 犯罪git push heroku master
# 将项目文件推送到远程 Heroku 应用程序仓库
部署成功后,输入-回车
heroku logout
# 退出
你打算使用哪个存储?
因为 Heroku 不托管静态文件。
- 您可以
Azure storage
免费使用。完整教程在这里
这是我的一个项目模型部署到 Heroku 并使用 azure 存储,您将找到所有需要的详细信息。
推荐阅读
- arrays - 更新 AngularFire2 中的嵌套数组
- python-2.x - 打印后使用 raw_input,未按正确顺序执行
- c# - 向网页发送rabbitmq响应
- github - 如何在 Travis CI 中更改 git clone 步骤的克隆目录
- android - 如何将存储在 recyclerview 适配器中的数组列表转换为字符串?
- eucalyptus - 我需要连接在基于 VMware 的桉树云平台中创建的实例,但我不明白该怎么做?
- racket - Racket 中的高 DPI 支持
- google-maps-api-3 - 谷歌地图 setIcon 更新路径(不是 URL)
- java - Java FX 类无法解析为 Eclipse 2018-12 和 JDK 11.02 的类型
- ibm-watson - Watson Assistant api 中的分页