We may earn an affiliate commission when you visit our partners.
Course image
Miguel Grinberg

The Flask Mega-Tutorial is an overarching tutorial for Python beginner and intermediate developers that teaches web development with the Flask framework. The tutorial was born as a series of blog articles, and has been thoroughly revised, updated and expanded as a result of a successful Kickstarter campaign. The concepts that are covered go well beyond Flask, including a wide range of topics Python web developers need to know when writing their own applications.

Read more

The Flask Mega-Tutorial is an overarching tutorial for Python beginner and intermediate developers that teaches web development with the Flask framework. The tutorial was born as a series of blog articles, and has been thoroughly revised, updated and expanded as a result of a successful Kickstarter campaign. The concepts that are covered go well beyond Flask, including a wide range of topics Python web developers need to know when writing their own applications.

The goal of the course is to build a nicely featured social blogging web application. Chapter 1 begins with a very simple version of this application that has just a few lines of code. Then, each successive chapter adds a new feature to it. The 23 chapters in this course can be roughly split into two parts: the first 12 chapters are focused on basic web development concepts, while the remaining 11 chapters cover intermediate and advanced techniques. All the code featured in this tutorial is open source, and is available on GitHub. You are welcome to use any of it for your own projects.

This edition of the tutorial includes over 11 hours of video showing how to perform all the steps in detail. For added context, the blog articles from where this tutorial originated are available on Miguel Grinberg's blog.

Important Note: The content in this tutorial was created in 2018 and revised in 2021, so you should expect minor issues due to changes in Python, Flask and other dependencies used. The blog version of this tutorial can be used as guidance to resolve problems.

Enroll now

What's inside

Learning objectives

  • Write complete web applications using python and flask
  • Accept user input through web forms
  • Use relational databases
  • Manage user logins and authentication
  • Translate and localize application messages
  • Implement a search engine
  • Add javascript user-friendly features
  • Application programming interfaces (apis)
  • Deploy your application on linux servers or docker containers
  • Deploy your application on heroku

Syllabus

Hello, World!
Introduction
Installing Python
Installing Flask
Read more
A "Hello World" Flask Application
Templates
What Are Templates?
Conditional Statements
Loops
Template Inheritance
Web Forms
Introduction to Flask-WTF
User Login Form
Form Templates
Form Views
Receiving Form Data
Improving Field Validation
Generating Links
Database
Databases In Flask
Database Migrations
Flask-SQLAlchemy Configuration
Database Models
Creating the Migration Repository
The First Database Migration
Database Upgrade and Downgrade Workflow
Database Relationships
Play Time
Shell Context
User Logins
Password Hashing
Introduction to Flask-Login
Preparing the User Model for Flask-Login
User Loader Function
Logging Users In
Logging Users Out
Requiring Users to Log In
Showing the Logged In User in Templates
User Registration
Profile Page and Avatars
User Profile Page
Avatars
Using Jinja2 Sub-Templates
More Interesting Profiles
Recording The Last Visit Time For a User
Profile Editor
Error Handling
Error Handling in Flask
Debug Mode
Custom Error Pages
Sending Errors by Email
Logging to a File
Fixing the Duplicate Username Bug
Followers
Database Relationships Revisited
Representing Followers
Database Model Representation
Adding and Removing "follows"
Obtaining the Posts from Followed Users
Combining Own and Followed Posts
Unit Testing the User Model
Integrating Followers with the Application
Pagination
Submission of Blog Posts
Displaying Blog Posts
Making It Easier to Find Users to Follow
Pagination of Blog Posts
Page Navigation
Pagination in the User Profile Page
Email Support
Introduction to Flask-Mail
Flask-Mail Usage
A Simple Email Framework
Request a Password Reset
Password Reset Tokens
Sending a Password Reset Email
Resetting a User Password
Asynchronous Emails
Facelift
CSS Frameworks
Introducing Bootstrap
Using Flask-Bootstrap
Rendering Bootstrap Forms
Rendering of Blog Posts
Rendering Pagination Links
Before and After
Dates and Times
Timezone Hell
Timezone Conversions

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Teaches Python and Flask, which are industry standard tools for building web applications
Builds a full-stack social blogging application, which provides a practical approach to understanding web development concepts
Led by Miguel Grinberg, a recognized expert in web development who has written several books on the subject
Covers advanced topics like APIs, deployment on Linux and Docker, and working with JavaScript, providing a comprehensive learning experience
Requires Python and Flask installation, which may be a barrier to entry for beginners who are not familiar with these tools
The course content was created in 2018 and last revised in 2021, so it may not be up-to-date with the latest versions of Python, Flask, and other dependencies

Save this course

Save The Flask Mega-Tutorial (Python Web Development) 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 Flask Mega-Tutorial (Python Web Development) with these activities:
Organize your course materials
Consolidate your notes, assignments, and resources to enhance your understanding and facilitate efficient review of the course materials.
Show steps
  • Gather all the materials you have accumulated throughout the course.
  • Create a organized system for storing and accessing your materials.
  • Regularly review your organized materials to reinforce your learning.
Mentor a fellow Flask learner
Guide and assist another individual in their journey of learning Flask, reinforcing your understanding and developing leadership skills.
Browse courses on Mentoring
Show steps
  • Identify someone who is new to Flask and is seeking guidance.
  • Offer your support and share your knowledge and experiences.
  • Provide feedback and encouragement to help the learner progress.
Revise your Python basics
Begin by refreshing the basic concepts of Python to ensure a strong foundation before diving into Flask.
Browse courses on Python Basics
Show steps
  • Review Python data types, variables, and operators.
  • Practice writing simple Python functions.
  • Create a small Python program using loops and conditional statements.
One other activity
Expand to see all activities and additional details
Show all four activities
Read the Flask Mega-Tutorial
Review the official Flask Mega-Tutorial to reinforce your understanding of Flask concepts and best practices, expanding on the knowledge gained in this course.
Show steps
  • Download and read through the Flask Mega-Tutorial.
  • Experiment with the code examples provided in the tutorial.
  • Refer to the tutorial as needed to clarify concepts or find solutions.

Career center

Learners who complete The Flask Mega-Tutorial (Python Web Development) will develop knowledge and skills that may be useful to these careers:
Web Developer
Web Developers create and maintain websites and web applications. They work with both the front-end (the part of the website that users see and interact with) and the back-end (the part of the website that stores and processes data). This course can help you get started in web development by teaching you the basics of Flask, a Python framework for web development. You'll learn how to create web pages, handle user input, and connect to databases. This knowledge can help you build a foundation for a career as a Web Developer.
Software Engineer
Software Engineers design, develop, and maintain software systems. They work on a wide variety of projects, from small personal applications to large enterprise systems. This course can help you build a strong foundation in Python, a popular programming language used by Software Engineers. You'll learn about object-oriented programming, data structures, and algorithms. This knowledge can help you prepare for a career as a Software Engineer.
Data Scientist
Data Scientists use data to solve business problems. They collect, clean, and analyze data to identify trends and patterns. This course can help you develop the skills needed to become a Data Scientist. You'll learn how to use Python to work with data, perform statistical analysis, and create data visualizations. This knowledge can help you build a strong foundation for a career as a Data Scientist.
Machine Learning Engineer
Machine Learning Engineers design, develop, and maintain machine learning models. They work on a wide variety of projects, from building self-driving cars to recommending products to customers. This course can help you build a strong foundation in Python, a popular programming language used by Machine Learning Engineers. You'll learn about object-oriented programming, data structures, and algorithms. This knowledge can help you prepare for a career as a Machine Learning Engineer.
Product Manager
Product Managers are responsible for the development and launch of new products. They work with engineers, designers, and marketers to bring products to market. This course can help you develop the skills needed to become a Product Manager. You'll learn about product development, user experience, and marketing. This knowledge can help you build a strong foundation for a career as a Product Manager.
Business Analyst
Business Analysts analyze business processes and identify opportunities for improvement. They work with stakeholders to gather requirements, develop solutions, and implement changes. This course can help you develop the skills needed to become a Business Analyst. You'll learn about business process modeling, data analysis, and project management. This knowledge can help you build a strong foundation for a career as a Business Analyst.
Data Analyst
Data Analysts collect, clean, and analyze data to identify trends and patterns. They work with stakeholders to communicate insights and make recommendations. This course can help you develop the skills needed to become a Data Analyst. You'll learn about data analysis, data visualization, and statistical modeling. This knowledge can help you build a strong foundation for a career as a Data Analyst.
Web Designer
Web Designers create the visual appearance of websites and web applications. They work with developers to ensure that websites are both visually appealing and functional. This course can help you develop the skills needed to become a Web Designer. You'll learn about web design principles, user experience, and graphic design. This knowledge can help you build a strong foundation for a career as a Web Designer.
Database Administrator
Database Administrators are responsible for the management and maintenance of databases. They work with a variety of databases, from small personal databases to large enterprise databases. This course can help you develop the skills needed to become a Database Administrator. You'll learn about database design, data storage, and data security. This knowledge can help you build a strong foundation for a career as a Database Administrator.
IT Manager
IT Managers are responsible for the planning, implementation, and maintenance of IT systems. They work with a variety of stakeholders, including users, developers, and vendors. This course can help you develop the skills needed to become an IT Manager. You'll learn about IT management principles, project management, and budgeting.
UX Designer
UX Designers create the look and feel of digital products. They work with engineers and designers to create products that are both visually appealing and user-friendly. This course can help you develop the skills needed to become a UX Designer. You'll learn about user experience principles, design thinking, and prototyping. This knowledge can help you build a strong foundation for a career as a UX Designer.
Cloud Engineer
Cloud Engineers design, build, and maintain cloud computing systems. They work with a variety of cloud platforms, from Amazon Web Services to Microsoft Azure. This course can help you develop the skills needed to become a Cloud Engineer. You'll learn about cloud computing principles, cloud architecture, and cloud security. This knowledge can help you build a strong foundation for a career as a Cloud Engineer.
Software Architect
Software Architects design and implement software systems. They work with a variety of stakeholders, including users, developers, and management. This course can help you develop the skills needed to become a Software Architect. You'll learn about software architecture principles, design patterns, and software development methodologies.
Technical Writer
Technical Writers create documentation for technical products. They work with engineers and developers to create user manuals, training materials, and other technical documents. This course can help you develop the skills needed to become a Technical Writer. You'll learn about technical writing principles, documentation tools, and user experience.
Project Manager
Project Managers plan, implement, and manage projects. They work with a variety of stakeholders, including project team members, clients, and sponsors. This course may help you develop some of the skills needed to become a Project Manager. You'll learn about project management principles, project planning, and project execution.

Reading list

We've selected eight 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 Flask Mega-Tutorial (Python Web Development).
Comprehensive guide to Flask web development, covering everything from the basics to advanced topics such as database integration, user authentication, and deployment. It valuable resource for anyone who wants to learn how to build web applications with Flask.
Guide to web application security. It covers topics such as web application vulnerabilities, attack techniques, and defense mechanisms. It valuable resource for anyone who wants to learn how to secure web applications.
Comprehensive guide to the Python programming language. It covers the basics of Python, including data types, control flow, and object-oriented programming. It also covers more advanced topics such as database integration, web development, and machine learning.
Practical guide to automating tasks with Python. It covers the basics of Python programming, including data types, control flow, and object-oriented programming. It also covers more advanced topics such as database integration, web development, and machine learning.
Crash course in Python programming. It covers the basics of Python, including data types, control flow, and object-oriented programming. It also covers more advanced topics such as database integration, web development, and machine learning.
Reference guide to the Python programming language. It covers the basics of Python, including data types, control flow, and object-oriented programming. It also covers more advanced topics such as database integration, web development, and machine learning.

Share

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

Similar courses

Here are nine courses similar to The Flask Mega-Tutorial (Python Web Development).
Python Flask for Beginners: Build a CRUD web app using...
Most relevant
Create Your First Web App with Python and Flask
Most relevant
Intro To Flask Web Development
Most relevant
Flask: Getting Started
Amazon Web Services (AWS) with Python & Boto3
REST APIs with Flask and Python in 2024
Web Development in Flask: Build Your First Website
Building a REST API with Python and Flask
Web Developer Bootcamp with Flask and Python in 2024
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 - 2024 OpenCourser