Part 1, Chapter 1

As with most new technologies, I find that the best way to learn something new is to actually build something.

With that in mind, this course teaches the fundamentals of Flask by building a full-featured web application. Each chapter builds upon itself to achieve the goal of developing an app for managing stock portfolios.

Why use a Web Framework in Python?

Before jumping into Flask, let's start with a question: Why use Flask at all?

Put simply: "Don't reinvent the wheel"!

As a Python developer, you have a wealth of powerful, battle-tested web frameworks at your disposal. Web frameworks themselves abstract away the lower-level details, common to every app allowing you to focus on the parts that make your app unique.

Why is Flask called a micro-framework?

The term 'micro-framework' refers to the fact that Flask provides the core pieces of functionality needed for a web framework. That said, if you need additional functionality (i.e., database interface, form validation, authentication, to name a few), there's an ecosystem of extensions.

This philosophy is one of my favorite aspects to the Flask framework. It's easy to mix and match extensions to create a unique concoction based on the needs of your app. For example, you can utilize the Flask-SQLAlchemy extension when your app needs to connect to a relational database like SQLite or Postgres. If you need to connect to a NoSQL database like MongoDB then you can swap out Flask-SQLAlchemy for Flask-PyMongo or Flask-MongoEngine.

While this course focuses on learning the fundamentals of Flask, if you're looking to take a deeper dive into what a framework does, I highly recommend the Building Your Own Python Web Framework course.

Why do I like Flask?

As I started getting into web development in Python, I found Flask to be the web framework that was the most intuitive to me.

There are a lot of great web frameworks available in Python like Django, Pyramid, Quart, and FastAPI.

I highly recommend exploring other web frameworks to get a feel for how they operate and make decisions in order to make developing web apps easier for the developer.

Flask is AWESOME! It gives you the flexibility to choose the tools you want. It gives you control over as much level of detail in your app that you want. There's a strong community behind Flask.

Lastly, I find the development experience with Flask to be very enjoyable.

Flask Introduction

Flask is a web framework written in Python that provides the following key pieces of functionality:

  • Routing
  • Request Handling
  • Configuration
  • Structure
  • Error Handling
  • Sessions
  • Templates
  • Static Files
  • Logging
  • Message Flashing

Again, beyond this core set of functionality, there are a number of extension available for additional operations.

Flask Development Server

Throughout this course, we'll use the Flask development server to communicate with the Flask app using a web browser:

Flask Development Server

The Flask development server provides a lot of great features for debugging during development.

However, the Flask development server is only intended for development. It should not be used in production. We'll dive more into this later.


After developing and testing the Flask app, you'll learn how to deploy it to Render.

What are we building with Flask?

In this course, you'll build an app for tracking stock portfolios. You can think of it as a basic version of a brokerage site like Fidelity or Charles Schwab:

Stock Portfolio

We'll also allow users to view a stock chart for each stock in their portfolio to learn how the stock has performed since the purchase date:

Stock Chart Example - SAM

The app provides user management functionality (e.g., registration, login/logout, password reset) so that multiple users can access the app.

Mark as Completed