Building a Python app is exciting—but sharing it with the world is even better. Heroku is a beginner-friendly platform that lets you deploy your Python web apps in just a few minutes. This guide will walk you through the step-by-step process to get your project online fast.
Why Deploy on Heroku?
- Easy setup with Git
- Free tier available for small projects
- Supports Python, Flask, Django, and more
- Great for showcasing projects and prototypes
Prerequisites
Before you begin, make sure you have:
- A working Python web app (e.g., built with Flask or Django)
- Python installed on your system
- Git installed
- A free Heroku account
Step 1: Prepare Your App
For Flask apps, make sure your main file looks something like this:
python
Copy code
from flask import Flask
app = Flask(__name__)
@app.route(“/”)
def home():
return “Hello, Heroku!”
if __name__ == “__main__”:
app.run()
Step 2: Create Required Files
requirements.txt
bash
Copy code
pip freeze > requirements.txt
Procfile
Create a file named Procfile (no extension) with this line:
makefile
Copy code
web: python app.py
✅ Replace app.py with your actual entry file name.
Step 3: Initialize Git and Commit
bash
Copy code
git init
git add .
git commit -m “Initial commit”
Step 4: Deploy to Heroku
- Login to Heroku:
bash
Copy code
heroku login
- Create a Heroku App:
bash
Copy code
heroku create your-app-name
- Push Your Code:
bash
Copy code
git push heroku master
- Open in Browser:
bash
Copy code
heroku open
Your app should now be live!
Troubleshooting Tips
- Make sure your requirements.txt includes gunicorn if needed for production
- Use heroku logs –tail to view real-time logs
- Use heroku ps:scale web=1 if the dyno is sleeping
Practice Tip
Try deploying a simple to-do app, chatbot, or portfolio site. Heroku makes it easy to test real-world deployment scenarios—even as a beginner.
Grow Beyond Localhost
Learning to deploy apps is a game changer. It transforms your projects from local experiments into public demos or production tools.
🚀 Ready to learn full-stack development and deploy real apps?
👉 https://www.thefullstack.co.in/courses/
You might be like this:-
What is AWS Lambda?A Beginner’s Guide to Serverless Computing in 2025
Java vs. Kotlin: Which One Should You Learn for Backend Development?
Where to Find Your Salesforce Organization ID
Frequently Asked Questions
What are the basic requirements for deploying a Python app on Heroku?
To deploy your Python app on Heroku, you need to have a Heroku account, install the Heroku CLI, and initialize a Git repository for your project. Your app should also have a requirements.txt file listing its dependencies. This will ensure a smooth deployment process.
How do I create a Procfile for my Python app on Heroku?
A Procfile is a text file that specifies the command to run your app. For a Python app, you typically use a command like “web: gunicorn app:app” where “app” is the name of your Python module. This file should be placed in the root of your Git repository.
Do I need to configure environment variables for my Heroku app?
Yes, you may need to configure environment variables for your Heroku app, especially if your app relies on sensitive information like API keys or database credentials. Heroku provides a simple way to set config vars using the Heroku CLI or the Heroku dashboard. This helps keep your sensitive information secure and separate from your code.
How long does it take to deploy a Python app on Heroku?
Deploying a Python app on Heroku can take just a few minutes, depending on the size of your app and the number of dependencies it has. Once you’ve set up your Git repository and created a Heroku app, you can deploy your code using a simple Git push command. Heroku will then automatically build and deploy your app.
What happens if my Heroku app crashes or encounters an error after deployment?
If your Heroku app crashes or encounters an error, you can use the Heroku logs to troubleshoot the issue. The Heroku CLI provides a command to view your app’s logs, which can help you identify the cause of the problem. You can then make the necessary changes to your code and redeploy your app.
