Heroku is a great platform with lots of useful addons and the set up is relatively easy. In this tutorial, I will give you a step-by-step guild to deploy a simple Django app on Heroku.
Develop Environment Setup
Assuming you have signed up for a account on Heroku and created an app in it, you will need to install Heroku Toolbelt to interact with Heroku through CLI later. We will use “Sample-Project” as the app name in this tutorial.
You will need to first check in your code to a git repository before deploying it to Heroku. The information of the git repository provided by Heroku can be found on your app’s settings page.
If this is not your first python app, you probably already have this set up. Otherwise, there are compatibility issue for different versions of Python, thus you should be using the Virtualenv to create a virtual environment when developing your Python app.
It is recommended to install django-toolbelt, which consists of the following packages. - Django - Gunicorn (WSGI server) - dj-database-url (a Django configuration helper) - dj-static (a Django static file server)
(venv)$ pip install django-toolbelt
(venv)$ cd Sample-Project
# Create a Django project name Sample_Project
# A valid Django project name can't contain dash
(venv)$ django-admin.py startproject Sample_Project .
# Create the requirements file
(venv)$ pip freeze > requirements.txt
1. Create the ProcFile A Procfile is used to declare what command should be executed to start a web dyno. This file should be in the same folder as the manage.py. Simply create a file named ProcFile and put the line below in the file.
web: gunicorn Sample_Project.wsgi --log-file -
2. Check the short name of the remote server that you want to deploy your code to. The sample output below shows there is only a single remote server, which short name as origin, configured. You may have configured more than a few remote server.