Choose your language
Flask Course
More than 2 million learners worldwide

Flask Course

4

Master Flask from the ground up and build real Python web applications that are secure, scalable, and production-ready. This course covers everything from routing and templates to databases, authentication, REST APIs, and deployment. You'll gain the hands-on skills employers and clients actually look for in a backend Python developer.

Dedika for businesses

What you will learn:

You will learn how to set up a professional Flask development environment and structure projects for long-term maintainability. The course covers dynamic routing, Jinja2 templating, form validation, and database management using SQLAlchemy. You will implement user authentication with Flask-Login, build RESTful APIs with token-based security, and write automated tests with pytest. Advanced topics include background tasks with Celery, real-time features with Flask-SocketIO, and containerization with Docker. By the end, you will know how to configure logging, apply security best practices, and deploy a fully functional Flask application to a live server.

How you study in a practical way Flask Course

How you practice Flask Course

For companies who want to train their team

With Dedika for businesses, the course includes exercises and examples tailored to your own business and the way your company needs.

Click here

Course content

8 Chapters • 40 LessonsDuration between 4 and 360 hours (you decide)

Chapter 1See details

Flask Foundations and Environment Setup

  • Lesson 1 • Python Environment and Virtual Environments

    Configure Python, pip, and isolated virtual environments for Flask projects. Proper isolation prevents dependency conflicts across projects.

  • Lesson 2 • Configuration Management

    Load and switch between development, testing, and production configs. Externalized configuration keeps secrets out of source code.

  • Lesson 3 • Your First Flask Application

    Write and run a minimal Flask app to understand the application factory pattern. Students trace a request from browser to Python function and back.

  • Lesson 4 • Installing and Configuring Flask

    Install Flask and verify the installation with a minimal app. This establishes the baseline toolchain for all subsequent chapters.

  • Lesson 5 • Flask Project Structure

    Organize files and folders following Flask conventions for scalable projects. Good structure reduces friction as the application grows.

Chapter 2See details

Routing, Views, and URL Building

  • Lesson 1 • Route Basics and HTTP Methods

    Define routes with the @app.route decorator and restrict them to specific HTTP methods. This connects URL patterns to view logic.

  • Lesson 2 • Blueprints for Route Organization

    Group related routes into Blueprints to modularize large applications. Blueprints are the foundation of scalable Flask architecture.

  • Lesson 3 • URL Building with url_for

    Generate URLs from endpoint names instead of hardcoding strings. url_for keeps links consistent when routes change.

  • Lesson 4 • Dynamic URL Parameters

    Capture variable segments in URLs and convert them to typed Python values. Dynamic routes enable resource-based URL design.

  • Lesson 5 • Redirects and Error Handlers

    Issue HTTP redirects and register custom error pages for 404 and 500 responses. Proper error handling improves user experience and debuggability.

Chapter 3See details

Templates and the Jinja2 Engine

  • Lesson 1 • Rendering Templates with render_template

    Pass Python data to HTML files using render_template and Jinja2 syntax. Templates separate presentation from business logic.

  • Lesson 2 • Template Inheritance and Blocks

    Define a base layout template and extend it in child templates using block tags. Inheritance enforces a consistent site-wide structure.

  • Lesson 3 • Jinja2 Control Structures

    Use if/else blocks and for loops inside templates to generate conditional and repeated HTML. Control structures eliminate redundant markup.

  • Lesson 4 • Macros, Includes, and Reusable Components

    Encapsulate repeated HTML fragments as macros or included partials. Reusable components reduce duplication across many pages.

  • Lesson 5 • Template Filters and Tests

    Transform output values with built-in filters and write custom filters for project-specific formatting. Filters keep logic out of templates.

Chapter 4See details

Forms, Validation, and User Input

  • Lesson 1 • Validators and Error Messages

    Apply built-in validators such as DataRequired and Email, and display error messages in templates. Validators enforce data integrity before processing.

  • Lesson 2 • File Uploads

    Accept file uploads, validate file types, and save files securely to the server. Secure upload handling prevents path traversal and malicious file execution.

  • Lesson 3 • CSRF Protection

    Enable and verify CSRF tokens in every form submission to prevent cross-site request forgery. CSRF protection is mandatory for any state-changing form.

  • Lesson 4 • Flask-WTF and WTForms Setup

    Install Flask-WTF, configure a secret key, and define form classes with typed fields. Form classes centralize validation rules and field definitions.

  • Lesson 5 • Handling Raw Form Data

    Read submitted form values from request.form and request.args without a form library. Understanding raw access clarifies what higher-level tools abstract.

Chapter 5See details

Databases with Flask-SQLAlchemy

  • Lesson 1 • Defining Models and Relationships

    Create model classes that map to database tables and define one-to-many and many-to-many relationships. Models are the schema definition for the application.

  • Lesson 2 • Advanced Querying and Pagination

    Write complex queries with joins, aggregates, and ordering, then paginate large result sets. Efficient queries reduce database load and improve response times.

  • Lesson 3 • Database Migrations with Flask-Migrate

    Use Flask-Migrate to generate and apply schema migrations without data loss. Migrations enable safe, versioned schema evolution in production.

  • Lesson 4 • Setting Up Flask-SQLAlchemy

    Install Flask-SQLAlchemy, configure the database URI, and initialize the db object. The db object is the central interface for all database operations.

  • Lesson 5 • CRUD Operations

    Insert, query, update, and delete records using the SQLAlchemy session API. CRUD operations are the building blocks of every data-driven feature.

Chapter 6See details

Authentication and Session Management

  • Lesson 1 • Flask-Login Setup and User Loader

    Install Flask-Login, configure the LoginManager, and implement the user_loader callback. The user_loader reconstructs the current user from the session on every request.

  • Lesson 2 • Password Hashing and User Model

    Hash passwords with Werkzeug and store only hashed values in the database. Storing plaintext passwords is a critical security vulnerability.

  • Lesson 3 • Protecting Routes with login_required

    Restrict access to views using the @login_required decorator and redirect unauthenticated users. Route protection enforces authorization at the view layer.

  • Lesson 4 • Role-Based Access Control

    Assign roles to users and restrict views based on role membership. RBAC separates what different user types are permitted to do.

  • Lesson 5 • Registration and Login Views

    Build registration and login forms that create accounts and authenticate users. These views are the entry points to the authenticated portion of the app.

Chapter 7See details

Building RESTful APIs with Flask

  • Lesson 1 • REST Principles and API Design

    Apply REST constraints to design resource-oriented URL schemes and choose correct HTTP verbs. Good API design reduces client-side complexity.

  • Lesson 2 • Returning JSON Responses

    Serialize Python objects to JSON using jsonify and set appropriate response headers. Consistent serialization ensures interoperability with API clients.

  • Lesson 3 • API Error Handling and Documentation

    Return structured JSON error responses and document endpoints with docstrings or OpenAPI specs. Clear error messages and docs reduce integration friction.

  • Lesson 4 • API Authentication with Tokens

    Protect API endpoints using token-based authentication with Flask-HTTPAuth or JWT. Stateless token auth is the standard for REST APIs.

  • Lesson 5 • Parsing Incoming JSON Requests

    Read and validate JSON payloads from request.get_json() and handle malformed input gracefully. Input validation prevents processing corrupt or malicious data.

Chapter 8See details

Testing, Deployment, and Production Readiness

  • Lesson 1 • Environment Variables and Secrets Management

    Inject secrets and config via environment variables and use a .env file for local development. Externalizing secrets prevents credentials from entering version control.

  • Lesson 2 • Logging, Monitoring, and Error Tracking

    Configure Python logging, structured log output, and integrate an error-tracking service. Observability enables fast diagnosis of production issues.

  • Lesson 3 • WSGI Servers and Reverse Proxies

    Replace the development server with Gunicorn and place Nginx in front as a reverse proxy. Production WSGI servers handle concurrency the dev server cannot.

  • Lesson 4 • Test Fixtures and Coverage

    Use pytest fixtures to set up and tear down test state, and measure code coverage with pytest-cov. Coverage metrics reveal untested code paths.

  • Lesson 5 • Unit and Integration Testing with pytest

    Write pytest-based tests for view functions, models, and form validation using the Flask test client. Automated tests catch regressions before deployment.

Certification

Your valid completion certificate

This course is for you:

  • Python scripter: ready to turn code into real web applications.

  • Career changer: moving from non-tech work into backend web development.

  • Data analyst: wants to expose models and results through a web interface.

  • Freelance developer: needs a reliable Python stack for client web projects.

  • CS student: looking to bridge academic Python knowledge with practical frameworks.

  • Junior developer: building portfolio projects to land a first backend role.

What our students say

Your classes are perfect. I purchased the one-year package and finally have the opportunity to follow various topics of my interest without needing to change platforms... I thank you for everything you do, I've already recommended you to other people...
Giulio Carlo
Giulio CarloDigital Marketing Student
I like how the lessons are straight to the point and how I can switch chapters and skip content I don't need.
Mariana Ferres
Mariana FerresPhotography Student
I like the content and the way videos are presented and transcribed, which speeds up the process!
Luciana Alvarenga
Luciana AlvarengaNail Design Student
The platform is fast, simple to use. The diversity of content and complementary videos really help with learning.
André Felipe
André FelipePrompt Engineering Student

Top trainings

FAQs

Who is Dedika?

Is the certificate valid in the Philippines?

Are the courses free?

What is the course workload?

What are the courses like?

How do the courses work?

What is the duration of the courses?

What is the cost or price of the courses?

What is an EAD or online course and how does it work?

PDF Course