Flask is a staple in backend development. In this course, you'll learn how to build complete REST APIs using popular technologies.
SQLAlchemy (with Flask-SQLAlchemy)
Flask-Migrate for database migrations
Background tasks with rq for sending emails
Deployments to Render.com using git
Dive into Flask with concise, to-the-point videos that guide you through the complete process of building a REST API. In each section you'll add more features to the app, and by the end of the course you'll know how to deploy and make your app publicly accessible.
To start, you'll build a simple API with Flask and learn to test it with Insomnia. Then, you'll run it using Docker. After, you'll add database interactions with SQLAlchemy and user authentication with Flask-JWT-Extended.
Every time we need to modify our database schema, we'll do so by using database migrations, an industry standard.
Finally, for our API to be able to execute long-running tasks such as sending emails, we'll introduce background tasks for improved performance. We use rq for this instead of Celery because it's super simple to get started with, and doesn't require a complex setup.
Connect web or mobile applications to databases and servers via REST APIs
Create secure and reliable REST APIs which include authentication, deployments, and database migrations
Understand the different layers of a web server and how web applications interact with each other
Handle seamless user authentication with advanced features like token refresh
Handle log-outs and prevent abuse in your REST APIs with JWT blacklisting
Optimize performance of your REST APIs using task queues and background workers
A Full Python Refresher
Introduction to this section
Variables in Python
Coding Exercise 1: variables
String formatting in Python
Getting user input
Writing our first Python app
Lists, tuples, and sets
Advanced set operations
Coding Exercise 2: lists, tuples and sets
Booleans in Python
The 'in' keyword in Python
If statements with the 'in' keyword
Loops in Python
Coding Exercise 3: flow control-loops and ifs
List comprehensions in Python
Functions in Python
Function arguments and parameters
Default parameter values
Functions returning values
Coding Exercise 4: functions
Lambda functions in Python
Coding Exercise 5: dictionaries and students
Unpacking keyword arguments
Object-Oriented Programming in Python
Magic methods: __str__ and __repr__
Coding Exercise 6: classes and objects
@classmethod and @staticmethod
Coding Exercise 7: @classmethod and @staticmethod
Type hinting in Python 3.5+
Imports in Python
Relative imports in Python
Errors in Python
Custom error classes
Simple decorators in Python
The 'at' syntax for decorators
Decorating functions with parameters
Decorators with parameters
Mutability in Python
Mutable default parameters (and why they're a bad idea)
Your First REST API
An Introduction to Docker
Flask-Smorest for More Efficient Development
SQL Storage with Flask-SQLAlchemy
Project Overview (and why use SQLAlchemy)
Create a simple SQLAlchemy Model
One-to-many relationships with SQLAlchemy
Insert models in the database with SQLAlchemy
Get models by ID from the database using SQLAlchemy
Updating models with SQLAlchemy
Retrieve a list of all models
Delete models with SQLAlchemy
Delete models with relationships using cascades
Conclusion of this section
Many-to-many relationships with SQLAlchemy
User Authentication with Flask-JWT-Extended
Changes in this section
What is a JWT?
How are JWTs used?
The User model and schema
How to add a register endpoint to the REST API
How to add a login endpoint to the REST API
Protect endpoints by requiring a JWT
JWT Claims and Authorization
How to add logout to the REST API
Request chaining with Insomnia
Token refreshing with Flask-JWT-Extended
Database Migrations with Alembic and Flask-Migrate
Git Crash Course
Deploy REST APIs to Render
Task queues with rq and e-mail sending
7 More Sections
Hi, I'm Jose! I love helping students learn to code and master software development. I've been teaching online for over 7 years, and I founded Teclado to bring software development to everyone—my objective is for you to truly understand everything that goes on behind the scenes.
How does the course work? When does it start and end?
Do I get lifetime access if I buy the course?
Is this course suitable for beginners?
What support is available while taking the course?
Is this course available on Udemy? How is it different from buying it here?