Flask Academy icon

Flask Academy

PYTHONPythonBackendWeb

Build production web APIs and apps with Flask, Python's lightweight web framework. From routes and templates to REST APIs, auth, and deployment.

🤖 AI-Powered📚 30 courses👥 100,000+ learners⭐ 4.9 rating
Course Overview

Flask: Build Web APIs with Python

Build production web APIs and apps with Flask, Python's lightweight web framework. From routes and templates to REST APIs, auth, and deployment. This track covers 30 progressive mini-courses from absolute beginner (A1) through advanced (B2), with short focused lessons and quick quizzes to lock in each concept.

What You Will Learn

You start with the fundamentals and build up through intermediate and advanced topics, each course building on the last. Every lesson is practical and bite-sized, with a 24/7 AI tutor available when you need help.

How It Works

Each course is broken into four focused, bite-sized lessons. Complete a few lessons a day and you will master the full track in weeks, not months.

Start Learning →

How You'll Learn

🎯
Interactive Lessons
Hands-on coding exercises with real-time feedback
🤖
AI Tutor
Get instant help from our AI when you're stuck
💻
Built-in Editor
Write and run code directly in your browser
🏆
Certificate
Earn a certificate when you complete the course
Curriculum

30 Courses

Every course in the Flask Academy learning path.

01

Meet Flask: Your First Web App

A14 lessons

Understand what Flask is and run a working web app on your machine.

  • What Flask Is and Why It Exists
  • Set Up a Virtualenv and Install Flask
  • Hello World: Your First Flask App
  • +1 more
02

Routes and the Request Cycle

A14 lessons

Map URLs to Python functions and trace how a request becomes a response.

  • The @app.route Decorator
  • How a Request Becomes a Response
  • Return Strings, HTML, and Status Codes
  • +1 more
03

Dynamic URLs and Path Converters

A14 lessonsPRO

Capture values from the URL and validate their types.

  • Capture Variables from the Path
  • Type Converters: int, float, string, path
  • Build URLs with url_for
  • +1 more
04

Returning JSON Responses

A14 lessonsPRO

Send structured JSON so your app can power an API.

  • jsonify a Dictionary
  • Return Lists and Nested Data
  • Set Status Codes on JSON Replies
  • +1 more
05

HTTP Methods: GET and POST

A14 lessonsPRO

Handle different HTTP verbs and read submitted data.

  • Declare Allowed Methods on a Route
  • Branch Logic by request.method
  • Read POST Data from the Body
  • +1 more
06

The Request Object Up Close

A24 lessonsPRO

Inspect everything an incoming request carries.

  • Query Strings via request.args
  • Form Fields via request.form
  • JSON Bodies via request.get_json
  • +1 more
07

HTML with Jinja2 Templates

A24 lessonsPRO

Render dynamic HTML pages from reusable templates.

  • render_template and the templates Folder
  • Pass Data into a Template
  • Jinja2 Loops and Conditionals
  • +1 more
08

Template Inheritance and Layouts

A24 lessonsPRO

Share one base layout across every page of your site.

  • Define a Base Template with Blocks
  • Extend the Base in Child Pages
  • Include Reusable Partials
  • +1 more
09

Serving Static Files

A24 lessonsPRO

Wire up CSS, JavaScript, and images the right way.

  • The static Folder Convention
  • Link Assets with url_for static
  • Cache Busting with File Versions
  • +1 more
10

Forms, Query Strings, and Validation Basics

A24 lessonsPRO

Collect user input from forms and URLs and check it.

  • Build an HTML Form That Posts
  • Read and Default Query Parameters
  • Validate Required Fields by Hand
  • +1 more
11

Organize with Blueprints

B14 lessonsPRO

Split a growing app into modular, mountable components.

  • Why Blueprints Beat One Giant File
  • Create and Register a Blueprint
  • URL Prefixes and Blueprint url_for
  • +1 more
12

The Application Factory Pattern

B14 lessonsPRO

Build apps with a factory so they are configurable and testable.

  • Problems with a Global app Object
  • Write a create_app Function
  • Init Extensions with init_app
  • +1 more
13

Application and Request Contexts

B14 lessonsPRO

Master current_app, g, and the proxies Flask relies on.

  • App Context vs Request Context
  • current_app and the g Object
  • Context Locals and Thread Safety
  • +1 more
14

Database Models with Flask-SQLAlchemy

B14 lessonsPRO

Define tables as Python classes and connect a database.

  • Install and Configure the Extension
  • Define Your First Model Class
  • Columns, Types, and Constraints
  • +1 more
15

Querying the ORM: Filters and Joins

B14 lessonsPRO

Read data efficiently with filters, ordering, and relationships.

  • Fetch Rows with query and get
  • Filter, Order, and Limit Results
  • Define Relationships and Foreign Keys
  • +1 more
16

Build a CRUD Resource

B14 lessonsPRO

Create, read, update, and delete records through endpoints.

  • Create Records and Commit Sessions
  • Read One and Read Many Endpoints
  • Update Existing Records Safely
  • +1 more
17

Serialization with Marshmallow

B14 lessonsPRO

Turn models into clean JSON and validate incoming payloads.

  • Why Hand-Built JSON Falls Apart
  • Define a Schema for a Model
  • Dump Objects to JSON
  • +1 more
18

Error Handling and Custom Errors

B14 lessonsPRO

Return consistent, helpful error responses across your app.

  • abort and HTTP Error Codes
  • Register errorhandler Functions
  • Raise Custom Exception Classes
  • +1 more
19

Sessions and Cookies

B14 lessonsPRO

Remember users between requests with secure server-side state.

  • Set and Read the session Dict
  • The SECRET_KEY and Signed Cookies
  • Set Custom Cookies on a Response
  • +1 more
20

Flask-WTF Forms and Validation

B14 lessonsPRO

Build robust, CSRF-protected forms with declarative validation.

  • Define a FlaskForm Class
  • Render and Submit a Form
  • validate_on_submit and CSRF Tokens
  • +1 more
21

Authentication with Flask-Login

B24 lessonsPRO

Add session-based login, logout, and protected views.

  • Hash Passwords, Never Store Plaintext
  • User Loader and the UserMixin
  • login_user, logout_user, and Sessions
  • +1 more
22

Token Auth with JWT

B24 lessonsPRO

Secure a stateless API using signed JSON Web Tokens.

  • Sessions vs Stateless Tokens
  • Issue Access Tokens on Login
  • Protect Endpoints with jwt_required
  • +1 more
23

REST APIs with Flask-RESTful

B24 lessonsPRO

Structure clean, resource-oriented APIs with class-based views.

  • Resource Classes and the Api Object
  • Map HTTP Methods to Class Handlers
  • Parse and Validate with reqparse
  • +1 more
24

Database Migrations with Flask-Migrate

B24 lessonsPRO

Evolve your schema safely with versioned migrations.

  • Why You Need Migrations, Not create_all
  • Init and Autogenerate a Migration
  • Apply and Roll Back with upgrade
  • +1 more
25

Background Jobs with Celery

B24 lessonsPRO

Offload slow work to a queue so requests stay fast.

  • Why Move Work Off the Request
  • Wire Celery into the App Factory
  • Define and Call a Task
  • +1 more
26

Caching for Speed

B24 lessonsPRO

Cut response times by caching expensive work.

  • Set Up Flask-Caching
  • Cache a View with cached
  • Memoize Expensive Functions
  • +1 more
27

Testing Flask with pytest

B24 lessonsPRO

Write fast, reliable tests for routes, the DB, and auth.

  • The Test Client and Fixtures
  • Assert on Routes and JSON
  • Isolate Tests with a Test Database
  • +1 more
28

Config and Environments

B24 lessonsPRO

Manage settings and secrets across dev, test, and prod.

  • Config Classes per Environment
  • Load Secrets from Environment Variables
  • Use dotenv in Development
  • +1 more
29

Rate Limiting and API Security

B24 lessonsPRO

Harden your API against abuse and common web attacks.

  • Throttle Requests with Flask-Limiter
  • Configure CORS for Browser Clients
  • Security Headers and HTTPS
  • +1 more
30

Dockerize and Deploy with Gunicorn

B24 lessonsPRO

Package and ship your app behind a production WSGI stack.

  • Why Not the Built-in Dev Server
  • Run Flask Under Gunicorn
  • Write a Production Dockerfile
  • +1 more
FAQ

Frequently Asked Questions

Is the Flask Academy course free?

Yes. You can start the Flask Academy course for free and complete its interactive lessons at no cost. An optional PRO subscription unlocks advanced AI tools and a shareable certificate.

Do I need prior experience to learn PYTHON?

No. The course begins with the fundamentals and gradually moves to more advanced topics, so you can start even with no prior PYTHON experience.

How will I learn PYTHON on CoddyKit?

You learn by doing. Short interactive lessons pair a clear explanation with a hands-on coding exercise that runs in real time, and a 24/7 AI tutor gives personalized help whenever you get stuck.

Do I get a certificate for completing Flask Academy?

Yes. PRO learners can take an exam and earn a shareable certificate of completion with a verifiable code for the Flask Academy course.

Can I learn PYTHON on my phone?

Yes. CoddyKit is available on the web and as native iOS and Android apps, so you can learn PYTHON on any device and your progress syncs across them.

Start Flask Academy Now

Join thousands of learners mastering programming with AI-powered lessons.

Get Started Free →Browse All Courses