Become a Python Web Developer

Learning PathSkills: Web Development, Django, Flask, FastAPI, REST APIs

A variety of machines showing web language code snippets

You’ll start with HTML and CSS foundations, then build web applications with three popular Python frameworks: FastAPI, Django, and Flask. Along the way, you’ll create REST APIs, work with JSON data, manage Django admin, and connect a JavaScript front end to a Flask API.

Become a Python Web Developer

Learning Path ⋅ 20 Resources

Web Foundations

Start with the building blocks of the web. You’ll learn HTML and CSS from a Python developer’s perspective, then explore how web frameworks organize code using the Model-View-Controller pattern.

Title image for HTML and CSS Foundations for Python Developers (HTML and CSS for Python Developers)

Course

HTML and CSS Foundations for Python Developers

There's no way around HTML and CSS when you want to build web apps. Even if you're not aiming to become a web developer, knowing the basics of HTML and CSS will help you understand the Web better. In this video course, you'll get an introduction to HTML and CSS for Python programmers.

Title image for Model-View-Controller (MVC) in Python Web Apps: Explained With Lego (Model-View-Controller (MVC) in Python Web Apps: Explained With Lego)

Tutorial

Model-View-Controller (MVC) in Python Web Apps: Explained With Lego

This tutorial conceptually explains the Model-View-Controller (MVC) pattern in Python web apps using Lego bricks. Finally understand this important architecture to streamline your web development process.

Building With FastAPI

Get started with FastAPI, a modern Python web framework. You’ll build web pages with HTML templates and create REST APIs.

Title image for Start Building With FastAPI (Get Started With FastAPI)

Course

Start Building With FastAPI

Learn how to build APIs with FastAPI in Python, including Pydantic models, HTTP methods, CRUD operations, and interactive documentation.

Title image for Get Started With FastAPI (Get Started With FastAPI)

Interactive Quiz

Get Started With FastAPI

Title image for How to Serve a Website With FastAPI Using HTML and Jinja2 (How to Serve a Website With FastAPI Using HTML and Jinja2)

Tutorial

How to Serve a Website With FastAPI Using HTML and Jinja2

Use FastAPI to render Jinja2 templates and serve dynamic sites with HTML, CSS, and JavaScript, then add a color picker that copies hex codes.

Title image for Python REST APIs With FastAPI (Use FastAPI to Build Web APIs)

Course

Python REST APIs With FastAPI

Learn the main concepts of FastAPI and how to use it to quickly create web APIs that implement best practices by default. By the end of it, you will be able to start creating production-ready web APIs.

Getting Started With Django

Learn Django, a full-featured web framework for building database-backed applications. You’ll start by building a portfolio app, then learn about migrations and more advanced Django features.

Title image for Getting Started With Django: Building a Portfolio App (Get Started With Django Part 1: Build a Portfolio App)

Course

Getting Started With Django: Building a Portfolio App

Learn the basics of creating powerful web applications with Django, a Python web framework. You'll build a portfolio website to showcase your web development projects, complete with a fully functioning blog.

Title image for Django Migrations 101 (Django Migrations: A Primer)

Course

Django Migrations 101

With this course you’ll get comfortable with Django migrations and learn how to create database tables without writing any SQL, how to automatically modify your database after you changed your models, and how to revert changes made to your database.

Title image for Digging Deeper Into Django Migrations (Django Migrations: A Primer)

Tutorial

Digging Deeper Into Django Migrations

In this step-by-step Python tutorial, you'll not only take a closer look at the new Django migrations system that is integrated into Django but also walk through the migration files themselves.

Title image for Build a Location-Based Web App With Django and GeoDjango (Make a Location-Based Web App With Django and GeoDjango)

Course

Build a Location-Based Web App With Django and GeoDjango

Learn how to use Django and GeoDjango to build a location-based web application from scratch. You’ll be building a simple nearby shops application that lists the shops closest to a user’s location.

Title image for Django Redirects (Django Redirects Tutorial)

Course

Django Redirects

Learn everything you need to know about HTTP redirects in Django. All the way from the low-level details of the HTTP protocol to the high-level way of dealing with them in Django.

Django Admin and APIs

Learn how to manage users and customize Django’s admin interface. Then build HTTP APIs using Django REST Framework.

Title image for What You Need to Know to Manage Users in Django Admin (What You Need to Know to Manage Users in Django Admin)

Tutorial

What You Need to Know to Manage Users in Django Admin

Learn what you need to know to manage users in Django admin. Out of the box, Django admin doesn't enforce special restrictions on the user admin. This can lead to dangerous scenarios that might compromise your system.

Title image for Django Admin Customization (Customize the Django Admin With Python)

Course

Django Admin Customization

Learn how to customize Django's admin with Python. You'll use AdminModel objects to add display columns, calculate values, link to referring objects, and search and filter results. You'll also use template overriding to gain full control over the admin's HTML.

Title image for Building HTTP APIs With Django REST Framework (Python Django Tutorials Artwork)

Course

Building HTTP APIs With Django REST Framework

This course will get you ready to build HTTP APIs with Django REST Framework. The Django REST framework (DRF) is a toolkit built on top of the Django web framework that reduces the amount of code you need to write to create REST interfaces.

Building With Flask

Build web applications and REST APIs with Flask. You’ll create a scalable project from scratch, then build a multi-part REST API with a JavaScript front end.

Title image for Creating a Scalable Flask Web Application From Scratch (Build a Scalable Flask Web Project From Scratch)

Course

Creating a Scalable Flask Web Application From Scratch

In this video course, you'll explore the process of creating a boilerplate for a Flask web project. It's a great starting point for any scalable Flask web app that you wish to develop in the future, from basic web pages to complex web applications.

Title image for Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 1 (Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 1)

Tutorial

Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 1

In this three-part tutorial series, you'll create a RESTful API from scratch to keep track of people and notes using the Flask web framework. You'll also test your API with Swagger UI API documentation. In part one, you'll build the foundation of your note-keeping app.

Title image for Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 2 (Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 2)

Tutorial

Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 2

In this three-part tutorial series, you'll create a RESTful API from scratch to keep track of people and notes using the Flask web framework. You'll also test your API with Swagger UI API documentation. In part two, you'll implement a SQLite database to store your data permanently.

Title image for Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 3 (Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 3)

Tutorial

Python REST APIs With Flask, Connexion, and SQLAlchemy – Part 3

In this three-part tutorial series, you'll create a RESTful API from scratch to keep track of people and notes using the Flask web framework. You'll also test your API with Swagger UI API documentation. In part three, you'll use SQLAlchemy to provide the functionality to add notes to a person.

Title image for Build a JavaScript Front End for a Flask API (Build a JavaScript Front End for a Flask API)

Tutorial

Build a JavaScript Front End for a Flask API

Most modern websites are powered by a REST API. That way, you can separate the front-end code from the back-end logic, and users can interact with the interface dynamically. In this step-by-step tutorial, you'll learn how to build a single-page Flask web application with HTML, CSS, and JavaScript.

Working With Data on the Web

Learn how to work with JSON data and send emails from your Python applications. These are common tasks in web development that you’ll use across frameworks.

Title image for Working With JSON in Python (Working With JSON Data in Python)

Course

Working With JSON in Python

Learn how to work with Python's built-in json module to serialize the data in your programs into JSON format. Then, you'll deserialize some JSON from an online API and convert it into Python objects.

Title image for Sending Emails Using Python (Sending Emails With Python)

Course

Sending Emails Using Python

Learn how to send emails using Python. Find out how to send plain-text and HTML messages, add files as attachments, and send personalized emails to multiple people. Later on you'll build a CSV-powered email sending script from scratch.

Congratulations on completing this learning path! You’ve built a solid foundation in Python web development across Django, Flask, and FastAPI, and you know how to create REST APIs and work with front-end technologies.

You might also be interested in these related learning paths:

Got feedback on this learning path?

Looking for real-time conversation? Visit the Real Python Community Chat or join the next “Office Hours” Live Q&A Session. Happy Pythoning!

« Browse All Learning Paths