Choose your language
Flask Fundamentals: App Basics and Food Tracker App Course
Over 400,000 professionals on the platform
Exclusive for businesses

Flask Fundamentals: App Basics and Food Tracker App Course

Go from Python basics to a fully deployed web application with Flask. This course walks you through routing, templates, databases, authentication, and testing — all while building a real-world food tracker app. Every concept is applied hands-on, so you finish with a portfolio-ready project and the skills to build your next Flask app from scratch.

Dedika for students

What your team will master:

  • Build and structure Flask applications using the application factory pattern and Blueprints.

  • Configure relational databases with Flask-SQLAlchemy and manage schema changes using Flask-Migrate.

  • Create dynamic, data-driven HTML pages using Jinja2 templates and template inheritance.

  • Process and validate user input securely with Flask-WTF forms and CSRF protection.

  • Implement full user authentication, including password hashing and protected route access.

  • Deploy a tested, production-ready Flask application to a cloud hosting platform.

How your team learns in practice Flask Fundamentals: App Basics and Food Tracker App Course

How your team practises Flask Fundamentals: App Basics and Food Tracker App Course

Professionals from these companies study at Dedika

ActemiumFR
Nunner LogisticsNL
GT Constructora GeotécnicaCR
Sydel StarBR
Metrô de São PauloBR
Aguas AndinasCL
DSMIN
MeridianbetRS
CDHCN

Course content

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

Chapter 1See details

Python and Web Basics for Flask

  • Lesson 1 • Version Control with Git

    Introduces Git commands used to track and share Flask project code. Prepares students to commit progress at each chapter milestone.

  • Lesson 2 • How the Web Works

    Explains HTTP, URLs, and the client-server model that Flask sits on top of. Connects browser behaviour to server-side code students will write.

  • Lesson 3 • Setting Up Your Dev Environment

    Guides installation of Python, pip, and a virtual environment for isolated Flask projects. Ensures every student starts from a consistent, reproducible workspace.

  • Lesson 4 • Python Essentials for Flask

    Covers variables, functions, lists, dicts, and classes needed throughout the course. Establishes the Python baseline every subsequent chapter assumes.

Chapter 2See details

Flask Application Structure and Routing

  • Lesson 1 • Dynamic URL Parameters

    Covers angle-bracket syntax for variable URL segments and type converters. Enables detail pages for individual food entries in the tracker app.

  • Lesson 2 • HTTP Methods in Routes

    Restricts routes to specific HTTP methods and handles method-not-allowed errors. Prepares students to accept form submissions in the next chapter.

  • Lesson 3 • Defining Routes and View Functions

    Teaches the @app.route decorator and the relationship between URLs and view functions. Directly enables the multi-page navigation required by the food tracker.

  • Lesson 4 • Application Configuration and Debug Mode

    Manages Flask config keys, environment variables, and the debug flag safely. Prevents common security mistakes before students deploy any code.

  • Lesson 5 • Your First Flask Application

    Walks through creating the app object, running the dev server, and reading terminal output. Establishes the minimal working app all later features extend.

Chapter 3See details

Jinja2 Templates and HTML Rendering

  • Lesson 1 • Template Inheritance and Layouts

    Builds a base layout with block tags that child templates override. Eliminates repeated HTML and enforces a consistent site structure.

  • Lesson 2 • Control Flow in Templates

    Uses if/elif/else and for loops inside templates to render conditional and repeated content. Directly powers the food entry list in the tracker.

  • Lesson 3 • Jinja2 Syntax Essentials

    Covers expressions, statements, and comments in Jinja2 delimiters. Gives students the syntax toolkit for all dynamic template work ahead.

  • Lesson 4 • Jinja2 Filters and Macros

    Applies built-in filters and defines reusable macros for repeated UI components. Reduces duplication in the food tracker's entry cards and forms.

  • Lesson 5 • Rendering Templates with render_template

    Introduces the templates folder, render_template, and passing context variables. Connects Python data to the HTML pages users will see.

Chapter 4See details

Forms, Validation, and User Input

  • Lesson 1 • Displaying Validation Errors

    Renders field-level error messages in templates and preserves user input on failure. Improves UX so users can correct mistakes without re-entering all data.

  • Lesson 2 • File Uploads and Input Sanitisation

    Handles file fields, validates MIME types, and sanitises text input against injection. Prepares the tracker to accept optional food images safely.

  • Lesson 3 • HTML Forms and the Request Object

    Reads submitted form data from request.form and request.args in view functions. Establishes the raw mechanics before introducing form libraries.

  • Lesson 4 • Introducing Flask-WTF

    Installs Flask-WTF, configures CSRF protection, and creates a basic form class. Provides the structured form foundation the food tracker relies on.

  • Lesson 5 • WTForms Field Types and Validators

    Covers StringField, IntegerField, SelectField, and common validators like DataRequired. Maps directly to the food name, calories, and category fields in the tracker.

Chapter 5See details

Databases with SQLAlchemy and Flask-SQLAlchemy

  • Lesson 1 • Relational Database Concepts

    Explains tables, rows, columns, primary keys, and foreign keys without assuming prior SQL knowledge. Provides the mental model for designing the food tracker schema.

  • Lesson 2 • Configuring Flask-SQLAlchemy

    Installs Flask-SQLAlchemy, sets the database URI, and initialises the db object. Connects the Flask app to a SQLite file ready for model definitions.

  • Lesson 3 • CRUD Operations with SQLAlchemy

    Performs create, read, update, and delete operations using the session API. Wires database actions to the food tracker's add, edit, and delete routes.

  • Lesson 4 • Defining Models and Relationships

    Creates SQLAlchemy model classes with typed columns and relationship fields. Defines the FoodEntry and Category models central to the tracker app.

  • Lesson 5 • Database Migrations with Flask-Migrate

    Uses Flask-Migrate to generate and apply schema migrations without data loss. Enables safe schema evolution as the food tracker's requirements change.

Chapter 6See details

User Authentication and Session Management

  • Lesson 1 • Scoping Data to the Current User

    Filters all database queries by current_user.id so users see only their own entries. Completes the per-user data isolation the food tracker requires.

  • Lesson 2 • Registration and Login Views

    Builds registration and login forms, validates credentials, and calls login_user. Gives users the entry point to their personal food tracker data.

  • Lesson 3 • Protecting Routes with @login_required

    Applies the @login_required decorator and configures the unauthorized redirect. Ensures unauthenticated users cannot access or modify food entries.

  • Lesson 4 • Password Hashing and Storage

    Hashes passwords with Werkzeug's security helpers before storing them in the database. Prevents plaintext credential exposure in the user model.

  • Lesson 5 • Setting Up Flask-Login

    Installs Flask-Login, configures the LoginManager, and implements the user_loader callback. Provides the session infrastructure all protected routes depend on.

Chapter 7See details

Building the Complete Food Tracker App

  • Lesson 1 • Food Entry CRUD Interface

    Builds list, detail, create, edit, and delete views for food entries end to end. Applies routing, forms, and database skills in a unified feature.

  • Lesson 2 • Application Factory and Blueprints

    Refactors the app into a factory function and organizes routes into Blueprints. Scales the codebase cleanly before adding the tracker's full feature set.

  • Lesson 3 • Static Assets and UI Polish

    Serves CSS, JavaScript, and images via Flask's static folder and url_for. Delivers a polished, professional-looking tracker UI for portfolio presentation.

  • Lesson 4 • Search and Filtering

    Adds keyword search and category/date filters to the food entry list view. Improves usability as the user's entry history grows over time.

  • Lesson 5 • Calorie Summary and Reporting

    Aggregates daily and weekly calorie totals using SQLAlchemy query functions. Gives users actionable nutritional insight from their logged data.

Chapter 8See details

Testing, Deployment, and Production Readiness

  • Lesson 1 • WSGI Servers and Process Management

    Replaces the dev server with Gunicorn and manages worker processes for concurrency. Prepares the app to handle real user traffic reliably.

  • Lesson 2 • Testing Flask Applications

    Uses pytest and Flask's test client to write unit and integration tests for views and models. Validates app correctness before any deployment step.

  • Lesson 3 • Production Configuration

    Switches to a production-grade config, disables debug mode, and sets secure headers. Prevents common misconfigurations that expose apps to security risks.

  • Lesson 4 • Logging and Error Monitoring

    Configures Python logging and integrates an error-tracking service for production visibility. Enables rapid diagnosis of issues after the app goes live.

  • Lesson 5 • Deploying to a Cloud Platform

    Packages the app with a Procfile and requirements.txt and deploys to a cloud hosting service. Produces the live URL students include in their portfolio.

Certification

Your valid completion certificate

This course is for you:

  • Python hobbyist: ready to turn scripts into real web applications.

  • Computer science student: seeking hands-on backend project experience beyond coursework.

  • Data analyst: wanting to share insights through a self-built web interface.

  • Career changer: transitioning into software development with Python as their foundation.

  • Freelancer: looking to add web application development to their service offerings.

  • Junior developer: aiming to solidify backend skills with a structured real project.

Related courses

FAQ

Who is Dedika?

Is the certificate valid in the United Kingdom?

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