如何在Heroku上部署Django应用程序
Django是一个MVT网络框架,用于构建网络应用。它很强大,很简单,可以帮助网络开发者编写简洁、高效、强大的代码。在这篇文章中,我们将学习如何通过简单的步骤在Heroku上部署一个Django项目。
前置条件 :
- Django
- Postgres installed
Requirements.txt文件:在你的manage.py的同一目录下创建requirements.txt文件。在虚拟环境激活的情况下,在控制台运行以下命令。
检查你的requirements.txt。它将根据你的项目中当前安装的软件包进行更新。
Procfile:在manage.py的同一目录下创建一个名为Procfile的文件,你会看到Heroku的标志作为Procfile的图标。在其中添加以下一行。
这里项目名称将是你的settings.py所在的文件夹的名称。Procfile明确声明了应该执行什么命令来启动你的应用程序。
Runtime.txt文件:在你的manage.py的同一目录下创建runtime.txt文件。添加你想在你的网络应用中使用的python版本。
Settings.py:按照以下说明修改你的settings.py。
1.设置debug为False。
2.修改允许的主机。
3.要禁用Django的静态文件处理并允许WhiteNoise接管,请在你的 “INSTALLED_APPS “列表中添加 “nostatic”。
4.将WhiteNoise添加到MIDDLEWARE列表中。WhiteNoise中间件应该直接放在Django SecurityMiddleware(如果你正在使用它)之后,在所有其他中间件之前。
5.更新你的数据库设置。
6.要从文件的原始位置(通常在STATICFILES_DIRS或应用程序的静态子目录中)直接提供文件,而不需要通过collectstatic命令收集到STATIC_ROOT;将WHITENOISE_USE_FINDERS设置为True。
7.WhiteNoise带有一个存储后端,它可以自动处理压缩你的文件,并为每个版本创建唯一的名字,这样它们就可以安全地被永久缓存。要使用它,只需在你的settings.py中添加这个。
最终修改的settings.py的内容:
Heroku account
1.安装你的Heroku工具带,你可以在这里找到:https://toolbelt.heroku.com/
2.在cmd或gitbash中运行以下命令,认证你的Heroku账户
这里要部署的项目(简历)的目录是活动的。
有时cmd或git bash可能会在某些命令中冻结。只要用CTRL+C就可以出来了。
3.部署前在git上提交任何修改。
4.选择你的应用程序名称,它将显示在域名上–[你的应用程序名称].herokuapp.com,并使用以下命令创建应用程序。
5.调试。如果 collectstatic 在构建过程中失败了,会提供一个回溯,对诊断问题有帮助。如果你需要关于 collectstatic 运行环境的额外信息,请使用 DEBUG_COLLECTSTATIC 配置。
6.禁用collectstatic。有时,你可能不希望Heroku代表你运行collectstatic。你可以通过DISABLE_COLLECTSTATIC配置来禁用collectstatic的构建步骤。
7.最后,做一个简单的git推送来部署我们的应用程序。
8.当我们部署到Heroku时,我们创建了一个新的数据库,它是空的。我们需要运行migrate和creasuperuser命令。
命令提示符将再次要求你选择一个用户名和密码。这些将是你在现场网站管理页面上的登录信息。
9.要打开你的网站,请运行。
Resolving Errors
如果你看到你的网站上运行的应用程序错误。
它显示最近的日志,并为实时日志的流入留下会话。通过查看你的应用程序的实时日志流,你可以深入了解你的实时应用程序的行为并调试当前的问题。当你完成后,按Ctrl+C返回到提示。