首页 > 解决方案 > Django 应用程序的 Procfile 中应该包含什么?

问题描述

ProcfileHeroku 上的 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"

标签: pythondjangoherokuprocfiledyno

解决方案


您需要 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.txtvenv

项目启动步骤,最简单的方法:

  • 停用您venv的,以防万一
  • 转到heroku仪表板
  • 创建一个应用程序并选择一个有意义的名称和免费计划,这将允许您免费运行 1 个工人
  • 复制它的 url:herokuappname.herokuapp.com然后 in settings.py,粘贴进去ALLOWED_HOSTS = ['herokuappname.herokuapp.com']
  • DEBUG = False生产环境中不允许设置、调试
  • 然后在您的终端中导航到项目文件夹并一一键入以下命令
  • Heroku login# 登录您的 Heroku 帐户
  • heroku git:remote -a yourAppname# 连接到您已经创建的应用程序
  • git init# 初始化你的仓库
  • git add .# 将所有项目的文件添加到初始化的 repo
  • git commit -m "first push"# 犯罪
  • git push heroku master # 将项目文件推送到远程 Heroku 应用程序仓库

部署成功后,输入-回车

  • heroku logout# 退出

你打算使用哪个存储?

因为 Heroku 不托管静态文件。

  • 您可以Azure storage免费使用。完整教程在这里

这是我的一个项目模型部署到 Heroku 并使用 azure 存储,您将找到所有需要的详细信息。


推荐阅读