Open In App

Deploy Python Flask App on Heroku

Last Updated : 01 Nov, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

Flask is a web application framework written in Python. Flask is based on the Werkzeug WSGI toolkit and Jinja2 template engine. Both are Pocco projects. This article revolves around how to deploy a flask app on Heroku. To demonstrate this, we are first going to create a sample application for a better understanding of the process. 

Prerequisites 

  • Python
  • pip
  • Heroku CLI
  • Git


 

Deploying Flask App on Heroku


Let's create a simple flask application first and then it can be deployed to heroku. Create a folder named "eflask" and open the command line and cd inside the "eflask" directory. Follow the following steps to create the sample application for this tutorial.
STEP 1 : Create a virtual environment with pipenv and install Flask and Gunicorn .
 

$ pipenv install flask gunicorn 


STEP 2 : Create a "Procfile" and write the following code. 
 

$ touch Procfile 


 


STEP 3 : Create "runtime.txt" and write the following code.
 

$ touch runtime.txt 


 


STEP 4 : Create a folder named "app" and enter the folder. 
 

$ mkdir app
$ cd app


STEP 5 : Create a python file, "main.py" and enter the sample code.
 

 touch main.py 


 

Python3
from flask import Flask

app = Flask(__name__)

@app.route("/")
def home_view():
        return "<h1>Welcome to Geeks for Geeks</h1>"

STEP 6 :Get back to the previous directory "eflask".Create a file"wsgi.py" and insert the following code.
 

$ cd ../
$ touch wsgi.py


 

Python3
from app.main import app

if __name__ == "__main__":
        app.run()

STEP 7 : Run the virtual environment.
 

$ pipenv shell 


STEP 8 : Initialize an empty repo, add the files in the repo and commit all the changes.
 

$ git init 
$ git add .
$ git commit -m "Initial Commit"


STEP 9 : Login to heroku CLI using 
 

heroku login


Now, Create a unique name for your Web app.
 

$ heroku create eflask-app


 


STEP 10 : Push your code from local to the heroku remote. 
 

$ git push heroku master


 


Finally, web app will be deployed on http://eflask-app.herokuapp.com
 


 


Next Article
Article Tags :
Practice Tags :

Similar Reads