大家好!在本教程中,我们将讨论如何在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的精彩学习内容。