Skip to main content

Deploy Django to HEROKU

This page explains how to deploy Django on HEROKU

HEROKU fully supports Python-based applications and this page explains the steps that any developer can follow and deploy their apps using a minimal configuration. Any Django project can be deployed in two ways:

  • Using the CLI and a short sequence of commands
  • Using HEROKU UI and connect the GitHub repository

Before trying to deploy a Django project, the codebase needs to be updated (settings and dependencies), in order to have a succesfull deploy.

Prepare Django for HEROKU​

This section explains changes we need to apply on a Django project, as required by the HEROKU platform.

All mentioned changes are applied to this sample project, saved on GitHub: HEROKU & Django Starter

  • add django-heroku module to the requirements.txt
  • add Procfile in the root of the project
    • this file informs HEROKU where is the entry point in the Django APP
  • edit the project settings to include the following snippet (at the end of the file):
import django_heroku
django_heroku.settings(locals())

With all the above edits completed, we can use the HEROKU CLI to deploy the app


Deploy on HEROKU via CLI​

Once our account on HEROKU is created and we are authenticated, we can start a new deployment.

For this demonstration, the open-source sample will be used, and of course, the first step is to clone the source code:

👉 Step #1 - Clone/download the sources:

$ git clone https://github.com/app-generator/deploy-heroku-django.git
$ cd deploy-heroku-django

👉 Step #2 - Link the terminal with HEROKU account

$ heroku login

This will open a new browser window where we need to confirm the deployment.


👉 Step #3 - Push the sources into HEROKU cloud

$ git push heroku master

👉 Step #4 - Migrate the database on the remote deployment

$ heroku run python manage.py migrate 

👉 Step #6 - Access the deployed app

$ heroku open

The product should be similar to the this one Django Material Kit:

django-heroku-sample-app


Deploy using HEROKU UI​

An alternative to the CLI deployment, we can trigger a deployment using the UI. Here are the steps:

👉 Step #1 - Access the dashboard

HEROKU - Create APP Menu


👉 Step #2 - Create a new APP

HEROKU - Create APP


👉 Step #3 - Connect the GitHub repository

HEROKU - Connect Repository


👉 Step #4 - Trigger a new deployment

HEROKU - Trigger Deployment


👉 Step #5 - Checkout the progress

HEROKU - Deployment in progress


👉 Step #6 - Deployent is finished

HEROKU - Deployment finished


👉 Step #7 - The application is LIVE

HEROKU - App is LIVE


✅ Resources​