如何在Heroku上部署Django应用程序?

添加时间:2020-10-20 16:22:24

来源:

浏览:

Django是用于构建Web应用程序的MVT Web框架。它健壮,简单,可帮助Web开发人员编写干净,高效和强大的代码。在本文中,我们将通过简单的步骤学习如何在Heroku上部署Django项目。为此,应准备一个Django项目。


先决条件:  

Django的

已安装Postgres

Requirements.txt文件:在manage.py所在的目录中创建requirements.txt文件。在激活了虚拟环境的控制台中运行以下命令: 


 (myvenv)$ pip install dj-database-url gunicorn whitenoise

 (myvenv)$点冻结> Requirements.txt

检查您的requirements.txt。它将使用项目中当前安装的软件包进行更新。


Procfile:  在manage.py所在的目录中创建一个名为Procfile的文件。您将看到Heroku徽标作为Procfile的图标。向其添加以下行:


网址:gunicorn <项目名称> .wsgi --log文件-

这里的项目名称将是您的settings.py所在文件夹的名称。Procfile明确声明应执行什么命令来启动您的应用程序。

Runtime.txt文件:在与manage.py相同的目录中创建runtimetime.txt文件。添加您要用于网络应用的python版本:


python-3.7.1 

Settings.py:按照以下说明修改settings.py:


1.将debug设置为False。


调试=假

2.修改允许的主机。


ALLOWED_HOSTS = ['127.0.0.1','.herokuapp.com']

3.要禁用Django的静态文件处理并允许WhiteNoise接管,请将'nostatic'添加到'INSTALLED_APPS'列表的顶部。


INSTALLED_APPS = [

    'whitenoise.runserver_nostatic',

    'django.contrib.staticfiles',

    #...

]

4.将WhiteNoise添加到MIDDLEWARE列表。WhiteNoise中间件应直接放置在Django SecurityMiddleware之后(如果使用的话),然后放在所有其他中间件之前:


MIDDLEWARE = [

 'django.middleware.security.SecurityMiddleware',

 'whitenoise.middleware.WhiteNoiseMiddleware',

 #...

]

5.更新数据库设置。


导入dj_database_url


数据库= {

    '默认':{

        'ENGINE':'django.db.backends.postgresql_psycopg2',

        'NAME':'<数据库名称>',

        'USER':'<用户名>',

        'PASSWORD':'<密码>',

        'HOST':'localhost',

        '港口': '',

    }

}

db_from_env = dj_database_url.config(conn_max_age = 500)

DATABASES ['default']。update(db_from_env)

6.直接从原始位置(通常在STATICFILES_DIRS或应用程序静态子目录中)提供文件,而无需通过collectstatic命令将其收集到STATIC_ROOT中;将WHITENOISE_USE_FINDERS设置为True。

WHITENOISE_USE_FINDERS =真

7. WhiteNoise带有一个存储后端,该后端自动负责压缩文件并为每个版本创建唯一的名称,以便可以安全地对其进行永久缓存。要使用它,只需将其添加到您的settings.py中:

STATICFILES_STORAGE ='whitenoise.storage.CompressedManifestStaticFilesStorage'

最终修改后的settings.py内容:

导入dj_database_url

...

调试=假

ALLOWED_HOSTS = ['127.0.0.1','.herokuapp.com']


INSTALLED_APPS = [

    'whitenoise.runserver_nostatic',

    

    #...

    

]

MIDDLEWARE = [

    'django.middleware.security.SecurityMiddleware',

    'whitenoise.middleware.WhiteNoiseMiddleware',

    

    #...

]

...

数据库= {

    '默认':{

        'ENGINE':'django.db.backends.postgresql_psycopg2',

        'NAME':'<数据库名称>',

        'USER':'<用户名>',

        'PASSWORD':'<密码>',

        'HOST':'localhost',

        '港口': '',

    }

}


WHITENOISE_USE_FINDERS =真

...

db_from_env = dj_database_url.config(conn_max_age = 500)

DATABASES ['default']。update(db_from_env)

STATICFILES_STORAGE ='whitenoise.storage.CompressedManifestStaticFilesStorage'

Heroku帐户

1.安装Heroku工具带,您可以在这里找到:https ://toolbelt.heroku.com/

2.在cmd或gitbash中运行以下命令来验证您的Heroku帐户

$ heroku登录

此处要部署的项目(简历)目录处于活动状态

有时,在某些命令下,cmd或git bash可能会冻结。只需使用CTRL + C就可以了。

3.在部署之前对git进行任何更改。

$ git状态

$ git add -A。

$ git commit -m“ Heroku的其他文件和更改”

4.选择将显示在域名上的应用程序名称- [您的应用程序名称] .herokuapp.com,然后使用以下命令创建应用程序:

$ heroku创建<您的应用的名称>

5.调试:如果在构建过程中collectstatic失败,则提供回溯,这将有助于诊断问题。如果您需要有关运行收集静态环境的其他信息,请使用DEBUG_COLLECTSTATIC配置。

$ heroku config:set DEBUG_COLLECTSTATIC = 1

6.禁用Collectstatic:有时,您可能不希望Heroku代表您运行collectstatic。您可以使用DISABLE_COLLECTSTATIC配置禁用collectstatic构建步骤:

$ heroku config:set DISABLE_COLLECTSTATIC = 1

7.最后,执行一个简单的git push来部署我们的应用程序:

$ git push heroku master

8.部署到Heroku时,我们创建了一个新数据库,该数据库为空。我们需要运行migration和createsuperuser命令。

$ heroku运行python manage.py migration

$ heroku运行python manage.py createsuperuser

命令提示符将要求您再次选择用户名和密码。这些将是您在实时网站的管理页面上的登录详细信息。

9.要打开您的站点,请运行:

$ heroku打开

解决错误

如果您在网站运行中看到应用程序错误:

$ heroku日志--tail


用户名 Name
评论 Comment

联系我们

/ CONTACT US

地 址:成都市人民南路四段成科西路3号

邮政编码:610000

电 话:18215660330

传 真:18215660330

手机:18215660330

邮 箱:

投诉邮 箱:18215660330

姓名Name
标题Title
邮 箱Emali
联系电话Tel
内容Content