Flask Deploy on HEROKU
This page explains how to deploy a Flask application on Heroku, the popular deployment platform.
Last updated
Was this helpful?
This page explains how to deploy a Flask application on Heroku, the popular deployment platform.
Last updated
Was this helpful?
Basic programming knowledge in
Basic Flask knowledge and WSGI concept
Comfortable using a terminal
Already familiar with - command-line versioning tool
Flask is a lightweight WSGI web application framework. It is designed to make getting started quick and easy, with the ability to scale up to complex applications. Classified as a microframework, Flask is written in Python and it does not require particular tools or libraries. It has no database abstraction layer, form validation, or any other components where pre-existing third-party libraries provide common functions.
- official website
- official documentation
Heroku's a fully managed platform that helps developers to deploy apps with ease. Heroku is a cloud-based, fully-managed platform as a service (Paas) for building, running, and managing apps - features:
Runtime - Heroku empowers developers to deliver products using a CLI, called Heroku Toolbelt
PostgreSQL DBMS - a powerful database already configured to be production-ready
Automatic scaling - Heroku scales in an instant, both vertically and horizontally.
Github integration - trigger production builds directly from Github commits
To explain the process, we will use a simple Flask Boilerplate already enhanced for a Heroku deployment.
As mentioned, the project comes pre-configured for Heroku:
runtime.txt
- specify the Python version used by Heroku during the build and deploy
requirements.txt
- must contain the gunicorn
module
Gunicorn Green Unicorn
is a Python WSGI HTTP Server for UNIX. It’s a pre-fork worker model ported from Ruby’s Unicorn project. The Gunicorn server is broadly compatible with various web frameworks, simply implemented, light on server resources, and fairly speedy.
runtime.txt
python-3.8.3
python-3.7.7
python-3.8.10 <-- The Default Version
python-2.7.18
For our sample, gunicorn
is called with run:app
argument.
Open a terminal window and authenticate via heroku login
command
Clone the sources and push the project for LIVE deployment
The full command list, executed on our sample project.
Step #1 - Clone the project from Github
Step #2 - Check HEROKU is installed
Step #3 - Login to HEROKU plaform using the terminal
Step #4 - Push LIVE the product
At this point, you should be able to visit the app in the browser
Flask Boilerplate is a template codebase used by the AppSeed platform to generate enhanced with a basic set of features like authentication, database, ORM.
Procfile
- configuration file that informs Heroku where to look for the interface
For basic usage please access the page or the official .
To build the deploy any python-based app, Heroku uses a default Python version or the one specified in the runtime.txt file. Supported environment, as per Heroku official documentation - :
Heroku apps include a Procfile that specifies the commands that are executed by the app on startup. As specified in the , the Procfile is always a simple text file that is named Procfile without a file extension.
on Heroku platform
that match your OS: Mac, Unix or Windows