FREE BONUS SECTION INCLUDED
3 hours of additional video on building RESTful APIs and using web sockets!
5 things you'll love about Flask
Here's what Docker brings to the table
It continues to be really popular in 2024 too!
This is one of best courses on Flask that I know of. The instructor has the code written out in advance and in each video he explains the new features added and how they fit into the previous version. This is the perfect way to do it in my opinion. Also, his code has super clear comments and docstrings, which makes it really easy to understand what is going on in such a large application. As a bonus, you also learn some stuff about Docker.
Anyone with a basic understanding of Python, HTML, CSS and JavaScript who wants to learn how to develop real world web applications.
This isn't a Python 101 course so please make sure you have general programming concepts down such as how variables, loops and functions work.
We start with the very basics with Flask and work our way into more complex topics. This course is aimed at both beginners and intermediate web developers looking to step up their game and start building real applications.
I started out with a bit of Python using the Think Python book, did the Real Python course for Flask and Miguel Grinberg's Flask Web Development tutorial. I found Nick's course and decided to give it a try and I honestly think it's giving me a different perspective on Flask and that I need to improve my Flask and Python skills. I like the use of Docker in it and will likely get Nick's The Docker for DevOps course too. Keep up the good work!
I have been working with Flask for the past 3 years and I've also been a technical reviewer on the Mastering Flask Packt book, and even so, I am learning so much from you!
Not sure if it's a good fit for you? You have 1 full year to try out the course. 100% money back guarantee if you don't love it.
Each video contains at least 1 major concept applied to the application we'll build and often times you'll see these concepts applied in a few different ways.
We cover a ton of material and here's some of what you'll learn as you progress through the course:
User Accounts | How to Plan an Application |
Database Schemas | Database Queries |
Jinja Templates | Code Analysis |
Python 2 / 3 Compatibility | Writing Tests |
Dependency Management | Flask App Factory Pattern |
Application Configuration | Flask Blueprints |
Flask Extensions | CLI Scripts |
Logging | Debugging |
Sending Email | Form Validation / Submissions |
AJAX Requests | JSON Responses |
Background Workers | Rate Limiting |
Docker | Docker Compose |
Secure Tokens | Custom Admin Dashboard |
Pagination | Template Macros |
Generating Fake Data | Searching and Sorting Data |
Profiling | Middleware |
Custom Error Pages | Exception Handling |
Routing | Stripe Integration |
Microtransactions | Recurring Billing |
Invoicing | Coupon Codes |
Design Patterns | Data Modeling |
Subscription Management | Receiving Webhooks |
Database Migrations | Internationalization (i18) |
Password Reset Workflow | Authentication and Authorization |
CSRF Protection | Twitter Bootstrap v4 |
Webpack v5 | ES6 Javascript / SCSS |
Wow, what an amazing resource you've made. The app source is amazingly concise (clearly years of experience distilled). I'm a frustrated Django developer and was just getting started with Flask, trying to figure out how best to structure my app, absorb best practices, etc.. Funny thing is, every part of the stack you've chosen is exactly what I'd want to use.
I've built many projects with Flask and Docker over the years.
I'm a self taught full stack developer who has been learning and working as a freelance consultant for the last 20 years. The battle hardened source code used in this course is what I've personally used and tweaked from real world experience.
Over 20,000 people have taken at least one of my courses, which includes Dive Into Docker and HTTPS With Let's Encrypt.
Nick has always been quick to respond to my questions. I've never had a message fall through the cracks with Nick. He has become an invaluable mentor.
Nick is working around the clock answering questions. I encourage everyone to learn from Nick.
Nick is an awesome teacher who is always available to answer your questions in a kind and timely manner.
1. Welcome to the Course | 5 minutes |
---|---|
1.1 Course Introduction | |
1.2 Dealing with issues |
2. Is Flask Right for You? | 10 minutes |
---|---|
2.1 Introduction | |
2.2 What Is Flask? | |
2.3 What Kind of Web Sites Can You Build with Flask? | |
2.4 How Does Flask Compare to Other Frameworks? | |
2.5 Massive Companies Who Are Using Flask |
3. Application Overview | 10 minutes |
---|---|
3.1 Introduction | |
3.2 Going over the Demo App That We'll Build | |
3.3 Visualizing the Application's Architecture |
4. Preparing to Follow Along | 5 minutes |
---|---|
4.1 Introduction | |
4.2 Setting up an Initial Course Folder | |
4.3 Installing a Code Editor | |
4.4 Downloading the Course's Material |
5. Getting Familiar with Docker | 15 minutes |
---|---|
5.1 Introduction | |
5.2 Why Is It worth Using Docker? | |
5.3 Installing Docker on Linux, macOS and Windows | |
5.4 Making Sure Docker Works on Your System |
6. Creating a Base Flask App | 30 minutes |
---|---|
6.1 Introduction | |
6.2 Exploring the App's Package Dependencies | |
6.3 Taking a Look at the Application File | |
6.4 Investigating the Dockerfile | |
6.5 Running the Flask Application | |
6.6 Dealing with Configuration Settings | |
6.7 Coding Challenge |
7. Blueprints and Jinja 2 Templates | 25 minutes |
---|---|
7.1 Introduction | |
7.2 Creating Our First Flask Blueprint | |
7.3 Deciding on a Look for Our Application | |
7.4 Understanding Jinja 2 Templates | |
7.5 Creating the Home Page | |
7.6 Adding a Few Additional Pages | |
7.7 Coding Challenge |
8. Testing and Code Quality | 15 minutes |
---|---|
8.1 Introduction | |
8.2 Going over the requirements.txt Changes | |
8.3 Getting Comfortable Writing Tests | |
8.4 Investigating Our Code Test Coverage | |
8.5 Performing Static Analysis on the Code Base | |
8.6 Coding Challenge |
9. Creating a CLI Script | 10 minutes |
---|---|
9.1 Introduction | |
9.2 Why Do We Need a CLI Script? | |
9.3 Going over New Content Added to the Project | |
9.4 Getting Familiar with Click | |
9.5 Running the Commands We Created | |
9.6 Coding Challenge |
10. Using Our First Flask Extension | 5 minutes |
---|---|
10.1 Introduction | |
10.2 Going over the requirements.txt Changes | |
10.3 Debug Toolbar | |
10.4 Coding Challenge |
11. Creating a Contact Form | 40 minutes |
---|---|
11.1 Introduction | |
11.2 Going over the requirements.txt Changes | |
11.3 Configuring the App to Send e-mail | |
11.4 Adding the Contact Blueprint | |
11.5 Reviewing the Views | |
11.6 Looking into the Templates and Macros | |
11.7 Handling Forms with Flask-WTForms | |
11.8 Our First Taste of Celery | |
11.9 Running Celery with Docker Compose | |
11.10 Confirming It Works with Tests | |
11.11 Coding Challenge |
12. Creating a Complete User System | 1.25 hours |
---|---|
12.1 Introduction | |
12.2 Going over the requirements.txt Changes | |
12.3 Configuring the App to Handle Users | |
12.4 Adding the User Blueprint | |
12.5 Exploring the User Model | |
12.6 Initializing the Database | |
12.7 Logging Users in and Out | |
12.8 Registering New Users | |
12.9 Welcoming New Users | |
12.10 Allowing Users to Update Their Settings | |
12.11 Dealing with Password Resets | |
12.12 Modifications to Previous Blueprints | |
12.13 Confirming It Works with Tests | |
12.14 Coding Challenge |
13. Creating a Custom Admin Dashboard | 50 minutes |
---|---|
13.1 Introduction | |
13.2 Why Are We Not Using Flask-Admin? | |
13.3 Adding the Admin Blueprint | |
13.4 Viewing the Main Dashboard | |
13.5 Listing Users | |
13.6 Editing Users | |
13.7 Generating Fake Users with the CLI | |
13.8 Searching and Sorting Users | |
13.9 Deleting Users | |
13.10 Confirming It Works with Tests | |
13.11 Coding Challenge |
14. Logging, Middleware and Error Handling | 25 minutes |
---|---|
14.1 Introduction | |
14.2 Tracking Response Times for All Requests | |
14.3 Configuring Log Levels | |
14.4 Using Flask's Logger | |
14.5 Integrating Google Analytics | |
14.6 Fixing IP Addresses with Middleware | |
14.7 Custom Error Pages | |
14.8 Handling Exceptions in Production | |
14.9 Coding Challenge |
15. Quality of Life CLI Improvements | 10 minutes |
---|---|
15.1 Introduction | |
15.2 Creating Secure Tokens | |
15.3 Viewing All Route Endpoints | |
15.4 Breaking down Lines of Code | |
15.5 Coding Challenge |
16. Accepting Recurring Payments | 2.5 hours |
---|---|
16.1 Introduction | |
16.2 Signing up with Stripe | |
16.3 Going over the requirements.txt Changes | |
16.4 Configuring the App to Handle Payments | |
16.5 Adding the Billing Blueprint | |
16.6 Visualizing the Data Model Relationships | |
16.7 Creating Subscription Plans | |
16.8 Rendering Pricing Tables | |
16.9 Subscribing to a Plan (Front-End) | |
16.10 Subscribing to a Plan (Back-End) | |
16.11 Updating Your Payment Method | |
16.12 Informing Users of Expiring Credit Cards | |
16.13 Updating Your Subscription Plan | |
16.14 Cancelling Your Subscription | |
16.15 Extending the Admin Dashboard | |
16.16 Managing Coupons in the Admin (Front-End) | |
16.17 Managing Coupons in the Admin (Back-End) | |
16.18 Expiring and Subscribing with Coupons | |
16.19 Managing Subscriptions in the Admin | |
16.20 Generating Random Invoices | |
16.21 Reviewing Your Billing Details | |
16.22 Integrating Stripe Webhooks | |
16.23 Confirming It Works with Tests | |
16.24 Sales Charts, Refunds and More | |
16.25 Coding Challenge |
17. Building the Snake Eyes Game | 35 minutes |
---|---|
17.1 Introduction | |
17.2 Going over the requirements.txt Changes | |
17.3 Configuring the App to Handle Betting | |
17.4 Adding the Betting Blueprint | |
17.5 Exploring the Bet and User Models | |
17.6 Placing Bets (Front-End) | |
17.7 Placing Bets (Back-End) | |
17.8 Generating Random Bets | |
17.9 Viewing Betting History | |
17.10 Modifying the Admin User Details | |
17.11 Confirming It Works with Tests | |
17.12 Coding Exercise Homework Assignments |
18. Processing Microtransactions | 20 minutes |
---|---|
18.1 Introduction | |
18.2 Configuring the App for Purchases | |
18.3 Accepting Payments (Front-End) | |
18.4 Accepting Payments (Back-End) | |
18.5 Viewing the New Invoice History | |
18.6 Adding to and Modifying the Custom Admin | |
18.7 Confirming It Works with Tests | |
18.8 Coding Challenge |
19. Database Migrations | 30 minutes |
---|---|
19.1 Introduction | |
19.2 What Is a Database Migration? | |
19.3 Going over the requirements.txt Changes | |
19.4 Configuring Alembic | |
19.5 Creating Our First Migration | |
19.6 Sidetracking with pgAdmin III | |
19.7 Running Our First Migration | |
19.8 Creating and Running a Second Migration | |
19.9 Viewing the History of Your Migrations | |
19.10 Auto-Generating Migration Scripts |
20. Internationalization (i18n) | 25 minutes |
---|---|
20.1 Introduction | |
20.2 What Is Internationalization? | |
20.3 Going over the requirements.txt Changes | |
20.4 Configuring the App to Handle i18n | |
20.5 Adding i18n Support to the Application | |
20.6 Updating the User Blueprint to Support i18n | |
20.7 Updating the Billing Blueprint to Support i18n | |
20.8 Generating the Primary messages.pot File | |
20.9 Updating Translations for Multiple Languages | |
20.10 Adding Additional Languages | |
20.11 Confirming It Works with Tests | |
20.12 Coding Challenge |
21. Where to Go Next? | 1.5 hours |
---|---|
21.1 Congrats on Finishing This Course | |
21.2 Continue Learning | |
21.3 Live Demo of Planning a Real World Web Application from Scratch |
22. BONUS: Updates to the Snake Eyes Application | 16 hours |
---|---|
22.1 Bug Fixes and Oversights (May 2018) | |
22.2 Upgrading to Flask 1.0 and More (May 2018) | |
22.3 Python 3.7 Compatibility and Package Updates (April 2019) | |
22.4 Docker Updates and Environment Specific Settings (April 2019) | |
22.5 Launching a Flask Shell for Interactive Programming (April 2019) | |
22.6 Bug Fixes and Oversights (August 2019) | |
22.7 Upgrading to Flask 1.1 and More (August 2019) | |
22.8 Bug Fixes and Digesting Static Files (Oct 2019) | |
22.9 Upgrading to Python 3.8.1 and More (Dec 2019) | |
22.10 Webpack Benefits, Bootstrap v4 and Going over the SCSS / ES6 JS (Dec 2019) | |
22.11 Back-end changes, Docker updates and the Webpack Config (Dec 2019) | |
22.12 Update CLI Commands to Use the Flask CLI (Feb 2020) | |
22.13 Generating a Custom Project with This Script (Jun 2020) | |
22.14 Updating Packages, Services and Stripe's API (Jul 2020) | |
22.15 Front-End Updates and Bug Fixes (Aug 2020) | |
22.16 Updating Everything to Their Latest Versions (Mar 2021) | |
22.17 Docker Updates, PIP Lock File and 2 New Flask Extensions (Mar 2021) | |
22.18 Add New Run Script, Health Check and More (Mar 2021) | |
22.19 Updating Flask to 2.0 and Other Updates / Refactoring (May 2021) | |
22.20 Updating Package Versions and Hadolint (Nov 2021) | |
22.21 Updating to Python 3.11, Flask 2.2 and Way More (Nov 2022) | |
22.22 Updating to Flask 2.3 and Much More (Aug 2023) | |
22.23 Updating to Flask 3.0 and Python 3.12 (Dec 2023) | |
22.24 Updating to Flask 3.1 and Python 3.13 (Nov 2024) |
23. BONUS: Building a RESTful API and Using Web Sockets | 4 hours |
---|---|
23.1 Prerequisites for following along with This Section | |
23.2 Going over the Demo App We'll Be Building | |
23.3 Defining, Using and Building APIs | |
23.4 Visualizing the Application and Going over Library Choices | |
23.5 Setting up the Base Application | |
23.6 Getting a Feel for the User and Auth API Endpoints | |
23.7 Creating Users with a RESTful API (Frontend) | |
23.8 Creating Users with a RESTful API (Backend) | |
23.9 Logging in and Logging Out with JWT Based Authentication | |
23.10 Fake Facts Preparation and Overview | |
23.11 Listing Fake Facts | |
23.12 Adding Fake Facts | |
23.13 Editing and Deleting Fake Facts | |
23.14 Showing Community Fake Facts | |
23.15 When to Use Web Sockets and How to Add Them to Your App | |
23.16 Signing up for Pusher and Configuring the App to Use It | |
23.17 Sending Events over Public Web Socket Channels with Pusher | |
23.18 Dealing with Private and Presence Channels Using Pusher | |
23.19 Upgrading to Flask 1.1 and More (Aug 2019) | |
23.20 Updating Everything to Their Latest Versions (Mar 2021) | |
23.21 Upgrading to Flask 2.3 and Nested Blueprints (Aug 2023) |
Nick has a great delivery style and each video feels like he's with you stepping you through the code. Whenever a problem has occurred, even if it's not directly related to the code/course content, Nick has been gone above and beyond in getting it resolved. I've never known any other course author to do that. If you want to learn Flask or just about building a SAAS app, look no further.
This bonus section is included with the main course. It is immediately available after signing up. It's like you're getting 2 courses in 1!
Here's What You'll Get |
---|
Download and Stream 1080p HD DRM-free Videos |
Lifetime access to all 23 Sections |
Lifetime access to all 213 Lessons |
~29 Hours of content |
25 Self guided coding challenges |
15 versions of the web app (built up in stages) |
108 page PDF / epub / mobi course workbook |
25 page PDF bonus guide on how to plan any web app |
New Bonus section for building RESTful APIs and using web sockets |
New Updated for Python 3.13+ which has improved performance |
New Update videos for Flask 3.1+ and other package updates |
New Updated with Webpack & Bootstrap v4 to modernize the front-end |
Private forums to ask questions and get answers |
24 / 7 support so you don't get stuck |
Free updates for life |
365 day money back guarantee, 100% risk free |
Get the Course | |
Looking for a team license discount or personalized training? Contact me at nick.janetakis@gmail.com.
I have spent weeks researching the exact topics this course covers and it has been a very slow painful process. This course is laying it all out for me on a platter. Best $59 bucks I've ever spent.
Years of experience and best practices packed into 29+ hours of content.
Instead of spending hundreds of hours furiously Googling around on your own while you second guess every decision, you can sit back and relax while someone who has been in the trenches for 2 decades provides you working solutions and insights over a few hours.
You're getting a comprehensive learning experience that was distilled from years of web development while building dozens of applications.
Nope but we will go over the app in 15 different stages of development.
It's easy to do live coding "from scratch" when you deal with toy examples, but when you're dealing with an application that has 4,000+ lines of Flask code and thousands of lines of HTML, CSS and JavaScript it's no longer feasible to code everything 1 character at a time.
No one wants to hear me narrate "ok now type D I V close bracket" for the 733rd time haha. You would be bored to tears and there would be 80+ hours of tedious video.
Instead, the code base is broken up into 15 stages of development where it starts with a single app.py
file and grows in stages while we learn and explore new application features such as users, the admin dashboard, accepting payments and so on.
I do go over every line of code so you'll get to see how to do it along with the "why" (which is the most important part in my opinion). You will also have plenty of time to write custom code because there are over a dozen coding challenges where you'll get to implement real world features into the application. Nearly everyone I asked prefers this style of learning.
A lot of folks asked me to make a course on building APIs, so I listened.
The goal of the Build a SAAS App with Flask course is to get you comfortable developing web applications with Flask. It's not limited specifically to building software as a service applications.
With that said, I didn't think it was fair to make a separate paid course to learn about building APIs with Flask, so I locked myself in my office for 6 weeks and created a completely separate bonus app along with 18 videos that cover building RESTful APIs (and web sockets) with Flask.
When I say "free updates for life", I mean it. This bonus section is 100% free to anyone who enrolls into the Build a SAAS App with Flask course (this course). Think of it as a companion to the main course for mastering Flask. It's immediately available in the last section of the main course.
It's so easy that you'll be watching your first video in about 60 seconds.
After clicking the get the course button you'll be taken to a form where you'll fill out your name, email and password. Then you'll be asked for your billing details. This creates an account on my platform.
After filling out that short form, you'll be immediately taken to the course back-end where you can either binge watch the entire course in one day, or take it at whatever pace works best for your schedule (you'll have lifetime access).
It's also worth mentioning that I use Stripe or PayPal to process all payments. Your billing details are safely processed and stored on their servers, not mine.
All videos were recorded at 1920x1080 (1080p).
If you stream the videos you'll have an option of watching them at 1080p, 720p or 480p.
This course was recorded with a studio grade microphone and I'm using serious business headphones to edit everything. There are no disgusting mouth noises, or heavy breathing going on in my videos.
Yes, I encourage you to make millions off it!
I want you to walk away being very confident building web apps with Flask, but more importantly I also want to give you a high quality code base that you can apply to your own projects.
You have my full permission to use the example project for any client work you do. So feel free to use it as a base for a $10,000 solution that you sell to a client.
The only limitation is that you're not allowed to distribute anything publicly. For example, please don't post it on your GitHub page or any other public location. This goes for any of the course's content!
You have a 365 day money back guarantee, 100% risk free.
I want to make sure you're very happy with the course. The last thing I'm trying to do is trick you into buying something. I only want your money if you found real value from taking the course.
If you're not satisfied, then shoot me an e-mail at nick.janetakis@gmail.com and I will refund you.
Just started the course. Instructions are clear and straight to the point. Makes it easy to follow. The lectures are also not too long, so you can stay focused.
I like the presenters style and course outline. Very easy to follow. Good pace. Not boring.
Well organized, thorough, and completely understandable.
Includes amazing contents that you will absolutely need for a web app. This is one of the best online courses I have ever taken.
Nick explains the concepts clearly, his source code matches the videos; he is also very easy to understand. Great job!
Great course! It is truly from scratch and goes through every step.
A very clear course with good lecture notes and instructions. Extremely helpful and responsive instructor as well! Recommending this course for anyone who wants to use Python Flask to build a real world application.
Thorough, clear and logical presentation, and great material. Thanks for putting this course together.
I have never taken a course before that was put together and delivered this well. Thank you Nick!
The course is organized well and the instructions are thorough without being overwhelming. The project is awesome so far and goes over everything I want to learn. I also like that it was so easy to set up on my computer and I have all the files I need to quickly follow along with the next section's videos and the course notes file contains a really good summary for each section along with the commands we go over which comes in handy for easy reference. I'm getting more and more confident as I go and with this course I finally feel like this subject is something I can really master to make my apps. Other resources I've tried so far are okay but this one really is the best I've found for my learning progress.
The instructor speaks very clearly, and at a good pace. When reviewing the material, you can play the videos at 1.5x and although it sounds fast, he speaks clearly enough that you can still understand. The code examples are very strong. The project is structured well, and there are plenty of examples of tests, SQLAlchemy models, and useful advanced Flask functionality. The inclusion of Docker is great in my opinion. I consider myself very fortunate to have stumbled upon this course whilst looking for the best way to learn Flask (I purchased it over 2 months ago).
This course is terrific. It shows a complete and practical development workflow that includes Docker. I was always wondering what was the best setup for running tests when developing with Docker. This course answers that using Docker and Docker Compose. In summary it has good videos, good code and solid best practices.
This is an excellent course! It gives an in-depth look at creating professional websites using Flask and Docker. Nick's attention to detail is great, just as it is in the Docker for DevOps course. If you are comfortable with the basics of programming in Python then this is perfect to take your game to the next level. It will save you a lot of time in figuring out how to implement a professional grade web app in Flask. The Docker usage is an extra bonus and something that I think everybody should be learning at this point.
This course is amazing. It's very detailed and pleasant to follow. The comments are easy to understand, even for a non-English speaker (I'm French). I learned a lot of things, including side topics such as Docker. Congrats and many thanks for this great work :)
I already knew Flask but this course showed me many things I didn't know! And I like that Nick uses Docker. Thanks for the great course.
Dude, this was really well thought out. The ability to show core biz logic, I'm excited for this course moving forward!
This is the best training I ever had in Flask!
Well thought out. Covers a ton of new information while presenting things in bite size chunks which are easy to understand.
Lots of meat in this course.
Almost halfway through and I'm very satisfied. Still pretty much a Python beginner, between the video instruction and support from Nick and the other students on the forums I'm attaining a good understanding of working with both Docker and Flask. It really is great value.
Now that I've had a chance to put what I learned into practice, all I can say is WOW! If there's ANY Flask course you want to take, take this one first. I don't remember how much I paid, but it should have been much more. Nick dismantles the mysteries of using the Flask framework for application development by teaching you the functional topology of a properly designed Flask app, with thorough, step-by-step instructions at each stage in the complex project's development.
This is a very enlightening course. I'm looking forward to create my first SAAS app.
Really well done! This is an amazing resource to break into server based web development.
After I completed this course, I must say it's a goldmine for anyone eager to dive into real-world application development. The integration of Flask with Docker is taught in such a pragmatic way that it simplifies even the most complex topics. The bonus sections on RESTful APIs and web sockets are just the cherry on top, providing additional depth. This course not only boosted my skills but also my confidence in building scalable applications. Highly recommended for those who want to enhance their web development prowess with Python!