在Heroku上部署Django应用程序 - 一个简单的步骤指南

121 阅读5分钟

大家好!在本教程中,我们将讨论如何在Heroku上免费部署我们的Django应用。所以,让我们开始在Heroku平台上零成本部署我们的第一个Django应用的令人兴奋的旅程吧。

如果你不了解Django,我们有一个Django教程系列,你可以跟着学。

什么是Heroku?

Heroku是一个云平台,使世界各地的开发者能够开发或建立、运行和操作各种网络应用。它属于PaaS(Platform As A Service),是广泛使用和最受欢迎的云计算服务产品之一。

Heroku完全支持学生的学习,这就是为什么除了付费功能外,它还提供免费服务以方便实验和部署。人们可以在Heroku平台上轻松使用Java、 Node.js、Scala、Clojure、Python、PHP和Go等编程语言,因为它支持所有这些语言。

为什么要在Heroku上部署我们的Django应用?

每当我们学习任何编程语言或框架,如Python中的Django,我们都会在本地电脑上做各种开发工作,这足以让我们学习和调试东西。但是当我们完成了开发工作,并且我们的项目已经准备好了,要被一些现实世界的用户使用,就有必要将项目或应用程序部署在一些网络服务器上。

这样,它就可以被所有的潜在用户访问。最重要的是,它对我们的开发工作产生了非常深刻和积极的影响,因为它在互联网上是活的,人们可以很容易地看到事物的实时工作。

在Heroku上部署Django应用程序的步骤

以下是在Heroku上部署Django应用程序的五个关键步骤。

1.创建一个你想在Heroku上部署的Django应用

如果你已经创建并开发了你的Django项目(一个网络应用程序或网站),那很好。你可以跳过这个步骤。对于那些现在没有Django项目,但仍想学习Django应用在Heroku上的部署过程的人。你可以运行以下命令来创建一个新的Django项目和应用程序。

> python -m pip install Django

> django-admin startproject <your_project_name>

> python manage.py migrate

> python manage.py runserver

输出。

Django version 3.2.6, using settings '<your_project_name>.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

注意:不要忘记在推进Django应用的部署过程之前,先在你的本地服务器

2.在GitHub上为Django应用程序创建一个存储库

登录你的GitHub账户,创建一个全新的reposo(仓库)来存储你的Django项目的所有文件夹、文件和代码。同时,把你当前Django项目的目录变成git repo,并把它连接到远程GitHub仓库。然后将所有内容分阶段,提交,最后将所有内容推送到远程GitHub仓库。

3.对Django项目的文件做如下修改

  • 在Django项目的目录中创建一个文件名为Procfile的新文件,并将以下代码复制到其中:
web: gunicorn <your_project_name>.wsgi --log-file -

  • 从命令行界面或虚拟环境(如果有)中安装以下依赖项:
> python -m pip install gunicorn

> python -m pip install whitenoise

  • 修改项目子文件夹内的settings.py 文件,添加允许的主机,并将DEBUG 参数设置为False ,方法如下:
DEBUG = False

ALLOWED_HOSTS = ['127.0.0.1', '<site_name>.herokuapp.com']

  • 再次修改settings.py 文件,以下列方式更新带有whiteenoise依赖关系的MIDDLEWARE 代码:
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
     # Added Following One Line Of Code
    'whitenoise.middleware.WhiteNoiseMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

  • 以下列方式更新项目子文件夹内的settings.py 文件,这对于媒体静态 文件的顺利工作是必需的:
urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include("home.urls")),
    # Added Following Two Lines Of Code
    url(r'^media/(?P<path>.*)$', serve,{'document_root': settings.MEDIA_ROOT}), 
    url(r'^static/(?P<path>.*)$', serve,{'document_root': settings.STATIC_ROOT}), 
]

  • 创建一个requirements.txt 文件,该文件将告诉服务器关于Django项目的各种依赖性及其版本,以使Django应用程序的部署过程和工作顺利进行,使用以下命令:
> python -m pip freeze > requirements.txt

注意:不要忘记分阶段、提交,然后将修改或变更推送到远程(GitHub仓库)。

4.在Heroku平台上创建一个免费账户

进入www.heroku.com,只需提供以下必须的细节,就可以创建一个免费的Heroku账户。

  • 名字
  • 姓氏
  • 电子邮件地址
  • 角色
  • 主要开发语言

如果你已经有一个Heroku账户,不需要再创建一个新的账户,只要在你的默认网络浏览器上登录即可。

5.在Heroku仪表板上创建和设置一个新的Heroku应用

以下是创建和设置一个新的Heroku应用程序的步骤:

  • 进入Heroku仪表板,点击 "新建"按钮。
  • 从下拉菜单中选择创建新应用选项。
  • 选择一个合适的可使用的应用程序名称
  • 进入应用设置频道,在Buildpacks部分选择Python
  • 切换到App Deploy通道,在部署方法部分连接你的GitHub账户。
  • 搜索包含Django项目的GitHub repo并选择它。
  • 手动部署部分选择git分支通常是master/main,然后点击部署分支按钮。

好哇!你已经在Heroku服务器上成功启动了你的Django应用程序或网站。

总结

在本教程中,我们已经了解了Heroku平台,部署的必要性,在Heroku平台上部署Django应用程序或网站的步骤。希望你理解了部署过程,并对在Heroku上部署你的Django应用或网站感到兴奋。谢谢你的阅读!请继续关注我们,了解更多关于Python的精彩学习内容。