Creating a portfolio website with Flask allows you to showcase your work and skills to the world. In this guide, we'll explore how to build a professional portfolio website using Flask, a Python web framework. You'll learn how to structure your portfolio, display your projects, and create a user-friendly website that reflects your personal brand. By following this guide, you'll have the knowledge and tools to create a compelling online portfolio to impress potential employers, clients, and collaborators.

Step 1: Setting Up Your Flask Application

Start by setting up your Flask application and creating a directory structure. Here's a sample structure:


Step 2: Installing Flask

Install Flask using pip:

pip install Flask

Step 3: Creating the Flask Application

Create your Flask application. Here's an example of Python code for a simple portfolio:

from flask import Flask, render_template
app = Flask(__name__)
# Sample project data
projects = [
'title': 'Project 1',
'description': 'Description of Project 1',
'image': 'img/project1.jpg',
'title': 'Project 2',
'description': 'Description of Project 2',
'image': 'img/project2.jpg',
def index():
return render_template('index.html', projects=projects)
def project(project_id):
if 0 <= project_id < len(projects):
return render_template('project.html', project=projects[project_id])
return 'Project not found', 404
if __name__ == '__main__':

Step 4: Creating HTML Templates

Create HTML templates to display your portfolio. Here's an example of an index template:

<!-- templates/index.html -->
<!DOCTYPE html>
<title>My Portfolio</title>
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='css/styles.css') }}">
<h1>Welcome to My Portfolio</h1>
{% for project in projects %}
<li><a href="{{ url_for('project', project_id=loop.index0) }}">{{ project.title }}</a></li>
{% endfor %}

Step 5: Styling Your Portfolio

Create CSS styles to make your portfolio visually appealing. You can place your CSS files in the static/css directory and link to them in your HTML templates.


Building a portfolio website with Flask is a great way to showcase your work and skills. By following this guide, you've learned how to set up your Flask application, structure your portfolio, and create a user-friendly website. You can expand on this knowledge to add more projects, create additional pages, and personalize your portfolio to make it truly unique.