We may earn an affiliate commission when you visit our partners.
Anthony Herbert

Welcome to The Ultimate Flask Course. This course is designed to teach you everything you need to know to get started building your own Python-based web apps using the Flask framework. I will teach you the basics of Flask and show you some examples of how to build apps using only the features of the Flask framework itself. Then I will teach you various useful extensions that you can use to make adding more powerful features to your Flask apps much easier and show you example apps using those extensions.

You'll learn:

Read more

Welcome to The Ultimate Flask Course. This course is designed to teach you everything you need to know to get started building your own Python-based web apps using the Flask framework. I will teach you the basics of Flask and show you some examples of how to build apps using only the features of the Flask framework itself. Then I will teach you various useful extensions that you can use to make adding more powerful features to your Flask apps much easier and show you example apps using those extensions.

You'll learn:

  • How to build Python web apps with Flask

  • How to use the Jinja template language to create the look of your apps

  • How to use the SQLite database to start development

  • How to use other databases with Flask by using Flask-SQLAlchemy

  • Using Flask to process incoming request data

  • How to build an API with Flask

  • Handle user sessions

  • How to build working apps with six app examples

In this course, we'll cover popular Flask extensions, including:

  • Flask-SQLAlchemy

  • Flask-WTF

  • Flask-Bootstrap

  • Flask-Mail

  • Flask-Migrate

  • Flask-Uploads

  • Flask-Login

  • Flask-Admin

  • Flask-User

  • Flask-Babel

  • Flask-Restless

  • Flask-SocketIO

  • Flask-Security

What do you need to know before starting the course?

As long as you have some basic experience with Python, you are ready to take the course. It's helpful to know some basics of HTML as well.

I look forward to seeing you in the course and hearing your thoughts.

Enroll now

What's inside

Learning objectives

  • How to build python-based web apps using flask.
  • How to use some of the most popular flask extensions to add more power to your apps.
  • How to connect to and interact with a database in flask using sqlite and sqlalchemy.
  • How to deploy flask apps to heroku, python anywhere, and to a linux server.

Syllabus

Students will understand the basics that are common to all Flask apps.
Installation on Windows
The Two Ways of Running Flask Apps
Installation and Hello World
Read more
Installation Using Pipenv
Intro to Routes
Route Methods
Route Variables
Request Query String
Request Form Data
Request JSON Data
Incoming Request Method
Redirects and url_for
Configuration
Sessions
Debug Mode
Students will understand how to create and modify templates to be used in Flask apps.
Intro to Templates
Template Variables
Conditionals
Loops
Static Files
Inheritance
Include
Students will learn how to connect directly to a SQLite database and interact with it.
Creating the Database
Connect to the Database
Queries
Inserting Data
View All Results
Students will build a simple food tracker app that demonstrates the features of Flask.
Demo
Create Question
The Starting HTML Files
Adding Templates
Adding Database Helpers
Working With The Food Form
Inserting Food Data Into Database
Display All Foods in Database
Inserting the Date
Query All Dates
Day Screen
Add Food to Database
Get List Of Foods For Day
Getting Food Totals For Day
Links
Sum Totals Per Day
Adding Links
Refactor
Deployment Server Setup on Amazon Lightsail
Deploy To Amazon Lightsail Server
Errata
Students will build a simple question & answer app that demonstrates the features of Flask.
Overview of Templates
Install and Templates
Database Helpers
Register User
Login
Common User Function
Updating Links
Creating Test Users
User Setup Page
List Questions
Answer Question
Home Route Questions
Question Page
Preventing Duplicate Users
Protecting Routes
Protecting Routes by Role
Login Failure Messages
Formatting Queries
Added Link Macro
Base Template
Deploy to Heroku
Convert to Postgres
Static Secret Key On Heroku
Students will build a simple API that demonstrates the features of Flask.
Setting Up The App and Test With Postman
Create the Database
Create a New Member
Return Member After Creation
Get All Members
Get One Member
Edit A Member
Delete A Member
Authentication
Authentication Decorator
Deploy to Python Anywhere
Students will understand enough Flask-SQLAlchemy to use in their Flask apps.
Setting Up A Database and Determing the URI
Installing Flask-SQLAlchemy
Connecting to the Database
Create a Table

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Covers Flask extensions like Flask-SQLAlchemy, Flask-WTF, and Flask-Login, which can streamline web application development and add robust features
Teaches how to build REST APIs with Flask, which is essential for modern web development and integration with other services
Explores deployment to platforms like Heroku, Python Anywhere, and Linux servers, providing practical knowledge for getting applications live
Uses SQLite for initial development, which is convenient for small projects, but also introduces Flask-SQLAlchemy for more robust database interactions
Requires basic Python and HTML knowledge, so learners without this foundation may need to acquire it before starting
Includes six application examples, which provides hands-on experience but may not cover all possible use cases or advanced scenarios

Save this course

Save The Ultimate Flask Course to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in The Ultimate Flask Course with these activities:
Review Basic Python Syntax
Reinforce your understanding of Python syntax, data structures, and control flow to ensure a smooth learning experience with Flask.
Browse courses on Python Syntax
Show steps
  • Complete online Python tutorials.
  • Write small Python scripts to practice.
  • Review Python documentation.
Brush up on HTML Fundamentals
Review HTML fundamentals to better understand how Flask templates are rendered in the browser.
Show steps
  • Review HTML tags and attributes.
  • Practice creating basic HTML pages.
  • Study HTML forms and input elements.
Practice Jinja Templating
Practice using Jinja templating with sample data to become more comfortable with template variables, conditionals, and loops.
Show steps
  • Create sample data for templates.
  • Implement conditionals and loops in templates.
  • Experiment with template inheritance.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Build a Simple To-Do App
Start a small project to solidify your understanding of Flask fundamentals, including routes, templates, and form handling.
Show steps
  • Set up a basic Flask application.
  • Create routes for adding and viewing tasks.
  • Design templates for displaying tasks.
  • Implement form handling for adding new tasks.
Read 'Flask Web Development: Developing Web Applications with Python'
Supplement your learning with a comprehensive guide to Flask web development, covering advanced topics and best practices.
Show steps
  • Read the book chapter by chapter.
  • Try out the code examples.
  • Apply the concepts to your own projects.
Write a Blog Post on Flask Extensions
Deepen your understanding of Flask extensions by researching and writing a blog post about your favorite ones.
Show steps
  • Choose a few Flask extensions to focus on.
  • Research the extensions and their features.
  • Write a blog post explaining the extensions and their use cases.
Contribute to a Flask Extension
Contribute to an open-source Flask extension to gain practical experience and learn from experienced developers.
Show steps
  • Find a Flask extension on GitHub.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.

Career center

Learners who complete The Ultimate Flask Course will develop knowledge and skills that may be useful to these careers:
Web Developer
A Web Developer designs, builds, and maintains websites and web applications. This course directly aligns with the core skills a Web Developer needs, focusing on building Python-based web applications using the Flask framework. The course covers essential aspects like routing, templating with Jinja, and handling requests, all of which are fundamental to web development. It goes on to explore the integration of databases using SQLite and SQLAlchemy, which are key for many web applications. Learning about Flask extensions also helps a Web Developer expand the functionality of their sites. Moreover, deploying apps to platforms like Heroku, Python Anywhere, and Linux servers gives practical experience in making web applications accessible to users. This course enables people to become web developers by providing the skills and knowledge needed to build complete web apps from start to finish.
Backend Developer
A Backend Developer focuses on the server-side logic, databases, and APIs that power web applications. This course is highly pertinent for a Backend Developer, as it teaches the core skills to be effective in the role. The course extensively covers building Python web apps with Flask, a framework used in many back end systems. A Backend Developer benefits from the in-depth exploration of databases with SQLite and SQLAlchemy, alongside routing, data processing, and user session handling. Working with Flask extensions also enhances the potential of server side code. Furthermore, the material on API development and deployment is directly applicable to many backend tasks. This course enables people to become proficient Backend Developers, teaching concepts, techniques, and tools that are valuable in practice.
Software Engineer
A Software Engineer designs, develops, and tests software systems and applications, often collaborating with other engineers, designers, and product managers. This course provides a focused approach to building web applications, which is a common task for Software Engineers. The course's emphasis on the Flask framework, an industry-standard tool, helps a Software Engineer build a solid foundation for creating robust web solutions. The course focuses on fundamental elements like handling requests, using templates, and managing databases, as well as the ability to build APIs. The practical experience of building several app examples is immediately useful. Specifically, a Software Engineer will find the material on Flask extensions and deployment to various platforms very relevant. Ultimately, this course offers valuable skills that are part of the skill set of a good Software Engineer.
Web Application Engineer
A Web Application Engineer specializes in building and maintaining web applications, focusing on functionality, performance, and scalability. This course is a great resource for a Web Application Engineer, offering practical skills in building web apps with Flask. The course provides a foundation in using the framework, including how to handle various types of requests, utilize templates with Jinja, and work with databases through SQLite and SQLAlchemy. A Web Application Engineer will also make use of the material on Flask extensions, which adds extra functionality. The course's coverage of API development and deployment is also essential for creating and maintaining web applications. This course provides a solid foundation for effectively building and deploying web applications.
API Developer
An API Developer designs, develops, and maintains Application Programming Interfaces that allow different software systems to communicate with one another. This course contains a relevant section on how to build an API with Flask, which represents a good starting point for an API Developer. The course shows how to handle requests, authenticate users, and structure data, all which are core parts of API development. The course’s exploration of databases is needed to create APIs that are able to access and manage data. An API Developer will appreciate learning how to use Flask extensions that add functionality, as well as the section covering deployment to various servers. This course provides a useful introduction to building and deploying APIs with Python and Flask, which are essential skills for an API Developer.
Full-Stack Developer
A Full Stack Developer works on both the front-end and back-end development of websites and web applications. While this course focuses on back-end development using Python and Flask, it is still very relevant to a Full Stack Developer. The course provides a strong understanding of server-side logic, database integration, API development, and deployment. A Full Stack Developer needs these skills to build a complete web application from beginning to end. The course materials on Jinja templating, request handling, and session management help lay the groundwork for back end development. The course also demonstrates database interactions, a critical skill that a Full Stack Developer must possess. This course enables a Full Stack Developer to better understand the back-end aspect, and is a valuable tool in their arsenal.
Python Developer
A Python Developer writes code using the Python programming language to build applications, scripts, and more. This course specifically focuses on using Python with the Flask framework to develop web applications, which is a key area for a Python Developer. The course emphasizes how to use Flask effectively, covering crucial parts of backend web development such as routing, request handling, and database management. The course goes on to teach how to use extensions to add more functionality. This focus on a Python-based web framework makes this course well-suited for a Python Developer looking to specialize in web applications. Skills like deploying applications on various platforms are included. This course enhances a Python Developer’s abilities by providing them with the skills for web development using the Python language.
Database Engineer
A Database Engineer is responsible for designing, implementing, and maintaining databases. This course may be useful for a Database Engineer, especially the sections covering database interactions with SQLite and SQLAlchemy within the Flask framework. While it does not focus exclusively on database administration, the course gives some understanding of how to connect to databases, execute queries, and manage data within a web application. A Database Engineer may use this information in understanding database interactions. This course provides relevant, but not comprehensive, experience with databases.
DevOps Engineer
A DevOps Engineer is responsible for streamlining software development and deployment processes. This course may be useful for a DevOps Engineer, particularly the sections on deploying Flask applications to various platforms like Heroku, Python Anywhere and Linux servers. A DevOps Engineer would benefit from learning how to package and deploy applications. While the course may not cover all of the tools and techniques used by a DevOps Engineer, the concepts and approaches to deployment will help in their goal of improving deployment workflows. This course may be useful to a DevOps Engineer.
Solutions Architect
A Solutions Architect designs and plans software solutions, and provides technical guidance. This course may be useful for a Solutions Architect, specifically by offering a hands-on introduction to building and deploying web applications using the Flask framework. The course gives a Solutions Architect some awareness of the capabilities and limitations of Python-based web applications. The depth of the course allows the Solutions Architect to understand backend development practices. A Solutions Architect can use what they learn in this course to help inform their decisions about software design and implementation. This course may have some utility for a Solutions Architect.
Technical Lead
A Technical Lead guides a team on the technical aspects of projects, ensuring high quality and alignment with technical standards. This course may be useful for a Technical Lead, as it demonstrates practical skills in web application development using Python and Flask. A Technical Lead can make use of the material presented in the course as they guide a team. The course’s coverage of building web apps, API development, and deployment allows them to understand the process that their team uses. This course may have some value for a Technical Lead.
Software Architect
A Software Architect focuses on the high-level design of software systems, determining the overall structure and components. This course may be useful for a Software Architect as it helps them to understand the architecture of a web application built using the Flask framework. The course explores components of request handling, templating, database integration, and API development, which give a Software Architect context for software design decisions. However, it only covers one architectural style, so a Software Architect would need to have other experiences. This course may be useful for a Software Architect.
Technical Project Manager
A Technical Project Manager manages technical projects, coordinating teams and resources to deliver solutions. This course may be useful for a Technical Project Manager, by providing an understanding of the technologies and processes used in web application development through the Flask framework. The course’s coverage of database connections, API creation and deployment gives a Technical Project Manager a better idea of the work that takes place. This course may be helpful for a Technical Project Manager who needs to understand the technical side of web application development.
Data Scientist
A Data Scientist analyzes data to gain insights and create data-driven solutions. This course may be useful to a Data Scientist, as it provides a basic understanding of how web applications are built and how they handle data. While the course does not focus directly on data science tasks, it does provide some context on how data can be accessed and managed within a web environment, such as with database integration. A Data Scientist may find this useful in understanding the flow of data. This course may be useful to a Data Scientist.
IT Manager
An IT Manager oversees the information technology operations of an organization. This course may be useful for an IT Manager, as it provides some insight into the practical aspects of web application development. While this course is not directly related to managing IT infrastructure, an IT Manager may find the information valuable to understand the technologies and how they are used. This course may be helpful for an IT Manager.

Reading list

We've selected one books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in The Ultimate Flask Course.
Comprehensive guide to Flask web development. It covers everything from the basics of Flask to more advanced topics such as database integration, user authentication, and API development. This book is commonly used as a textbook at academic institutions and by industry professionals. It provides additional depth to the existing course.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser