We may earn an affiliate commission when you visit our partners.
Course image
Jose Salvatierra and Teclado by Jose Salvatierra

Are you tired of boring, outdated, incomplete, or incorrect tutorials? I say no more to copy-pasting code that you don’t understand.

Read more

Are you tired of boring, outdated, incomplete, or incorrect tutorials? I say no more to copy-pasting code that you don’t understand.

Welcome to the bestselling REST API course on Udemy. I'm Jose. I'm a software engineer, here to help you truly understand and develop your skills in web and REST API development with Python, Flask, and Docker.

Production-ready REST APIs with Flask

This course will guide you in creating simple, intermediate, and advanced REST APIs including authentication, deployments, databases, and much more.

We'll start with a Python refresher that will take you from the very basics to some of the most advanced features of Python—that's all the Python you need to complete the course.

Using Flask and popular extensions Flask-Smorest, Flask-JWT-Extended, and Flask-SQLAlchemy we will dive right into developing complete, solid, production-ready REST APIs.

We will also look into essential technologies like Git and database migrations with Alembic.

You'll be able to...

  • Create resource-based, production-ready REST APIs using Python, Flask, and popular Flask extensions;

  • Handle secure user registration and authentication with Flask.

  • Using SQLAlchemy and Flask-SQLAlchemy to easily and efficiently store resources to a database; and

  • Understand the complex intricacies of deployments of Flask REST APIs.

  • Use Docker to simplify running and deploying your REST APIs.

But what is a REST API anyway?

A REST API is an application that accepts data from clients and returns data back. For example, a REST API could accept text data from the client, such as a username and password, and return whether that is a valid user in the database.

When developing REST APIs, our clients are usually web apps or mobile apps. That's in contrast to when we make websites, where the clients are usually the users themselves.

Together we'll develop a REST API that not only allows clients to authenticate but also to store and retrieve any data you want from a database. Learning this will help you develop any REST API that you need for your own projects.

I pride myself on providing excellent support and feedback to every single student. I am always available to guide you and answer your questions.

I'll see you on the inside. Take your first step towards REST API mastery.

Enroll now

What's inside

Learning objectives

  • 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
  • Develop professional-grade rest apis with expert instruction
  • Optimize performance of your rest apis using task queues and background workers

Syllabus

Complete all the pesky set-up and get ready for the course!

This course is structured in a specific way to make it as easy as possible for you to get exactly what you want out of it.

This lecture looks at maximising your time's value by making the course as efficient as possible for you.

Read more

Installing Python is very simple! Follow these steps and you'll be up and running in no time.

Installing Python is very simple! Follow these steps and you'll be up and running in no time.

Rediscover Python in this complete section

This is a short introductory video to this section. I'm really excited to guide you through this Python refresher course!

This lecture has a link to all the Python code we'll write in this section. Use it to check your code as you write it, or to refresh your memory!

Let's look at variables in Python. Variables are just names for values, which we can reuse and reset.

Python is a dynamic typed language, which means variables don't need be constrained to a specific type.

Variables in Python
Variables (Python 3.10)

The solution to the "Variables" Python coding exercise.

String formatting in Python
Getting user input
String formatting and getting user input
Writing our first Python app

In this lecture we look at three essential data structures in Python: lists, tuples, and sets.

A list is an ordered collection of items.

A tuple is an immutable ordered collection of items.

A set is an unordered collection of unique items.

In this fascinating video, we look at advanced set operations: calculating items which are in two sets, or items which are in one set but not another.

Lists, tuples and sets
Lists, tuples, and set (Python 3.10)

The solution to the "Lists, tuples, and sets" Python coding exercise.

Booleans in Python

This video explores how to create programs which can change depending on some input. For example, we might ask the user if they want to continue or not.

This makes use of boolean comparisons, such as:

  • 1 == 1 (which is True)
  • 5 > 5 (which is False)

The boolean comparisons we have available in Python are many:

  • ==
  • !=
  • >, <, <=, >=
  • is
  • is not
  • in
  • not in
Booleans and 'if' statements
The 'in' keyword in Python
If statements with the 'in' keyword
The 'in' keyword and 'if' statements

Loops allow us to repeat things over and over. This video explores two different types of loop in Python: for loop and while loop.

Loops in Python
Flow control—loops and ifs (Python 3.10)

The solution to the "Flow control" Python coding exercise.

List comprehension is a relatively unique thing to Python.

It allows us to succinctly use a for loop inside a list to generate values. These values then end up in the list.

For example, [x for x in range(10)] generates a list [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].

List comprehensions

Dictionaries are an extremely useful thing in Python.

They are akin to sets, but instead of being a set of unique values, they are a set of unique keys, and each has a value associated with it.

Dictionaries
Destructuring variables

In this video, let's look at methods in Python by creating some examples. Creating methods is simple, you just need the one keyword: def.

Functions in Python
Function arguments and parameters
Default parameter values
Functions returning values
Default parameters and function returning values
Functions (Python 3.10)

The solution to the "Method" Python coding exercise.

Lambda functions in Python
Dictionary comprehensions
Lambda functions and dictionary comprehensions
Dictionaries and students (Python 3.10)

The solution to the "Dictionaries and students" Python coding exercise.

*args and **kwargs are truly fascinatingly confusing. For eons, they have annoyed Python learners.

To this I say no more!

They're just a way of passing arguments.

Unpacking keyword arguments

Objects are the natural progression from dictionaries. Instead of just holding data, objects hold another special type of data: methods.

A method is a function which operates on the object calling it. Thus, an object can use its own values to calculate outputs of methods. Very cool.

Magic methods: __str__ and __repr__
Classes and objects (Python 3.10)

The solution to the "Classes and objects" Python coding exercise.

In many instances, we don't want our methods to be solely referencing the object which calls them. Sometimes, we want to reference the class of the object. Other times, we don't need either the object or the class.

@classmethod and @staticmethod are two decorators (looking at that shortly!) which extend the capabilities of methods.

@classmethod and @staticmethod (Python 3.10)

The solution to the "@classmethod and @staticmethod" Python coding exercise.

Classes in Python can also inherit from one another. This essentially means that a class contains all of the properties and methods of the class it inherits from—but with the added bonus that it can have more.

Class composition
Type hinting in Python 3.5+
Imports in Python
Relative imports in Python
Errors in Python
Custom error classes

Not only we can pass values from one method to another, but we can also pass functions.

This is not used very often, but it can sometimes yield very powerful methods in very few lines of code.

One of the most confusing aspects of Python for learners is the concept of decorators.

These are things we can place on top of function definitions which allow us to extend the function by executing code before and after the function.

They are extremely powerful when used well!

The 'at' syntax for decorators
Decorating functions with parameters

In this video we look at advanced decorators in Python, which is decorators that take arguments.

This amplifies the decorator's usefulness, although also makes them slightly more contrived.

Mutability in Python
Mutable default parameters (and why they're a bad idea)
Get started with Flask development by coding your first REST API!
Access the course e-book here
Overview of the project we'll build
Initial set-up for a Flask app
Your first REST API endpoint
What is JSON?
How to interact with and test your REST API
How to create stores in our REST API
How to create items in each store
How to get a specific store and its items
Learn what Docker is and how to use it to run Flask apps
What are Docker containers and images?
How to run a Flask app in a Docker container
In-depth Docker tutorial notes
How to run the Flask REST API with Docker Compose
Simplify the development of REST APIs and documentation with the Flask-Smorest extension
Data model improvements for our API
General improvements to our first REST API
New endpoints for our first REST API
How to run the API in Docker with automatic reloading and debug mode
How to use Blueprints and MethodViews in Flask
How to write marshmallow schemas for our API
How to perform data validation with marshmallow
Decorating responses with Flask-Smorest
Permanently store data and query it easily with SQLAlchemy and Flask-SQLAlchemy
Overview and why use SQLAlchemy
How to code a simple SQLAlchemy model

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides foundational knowledge in REST API development with Python for learners with no prior experience
Covers crucial technologies such as Flask, Flask-Smorest, Flask-JWT-Extended, and Flask-SQLAlchemy for developing robust APIs
Includes essential tools like Git and database migrations with Alembic to enhance development efficiency
Provides valuable guidance on deploying Flask REST APIs, making it practical for real-world applications
Uses Docker to simplify the process of running and deploying REST APIs, enhancing accessibility
Teaches advanced topics such as token refresh, JWT blacklisting, and performance optimization, catering to experienced learners seeking to enhance their skills

Save this course

Save REST APIs with Flask and Python in 2024 to your list so you can find it easily later:
Save

Reviews summary

Informative rest apis course

According to students, this course is informative and provides a lot of hands-on practice. The course covers a wide range of topics and helps students become comfortable with the complexities of web APIs. Students appreciate the engaging assignments and the opportunity to code along. However, some students mentioned that the last section could be improved with a congratulatory video.
Course covers a wide range of topics.
"Did not imagined learning so many things when I started the course."
Course provides lots of opportunities to practice.
"Nice course, to code along and get comfortable with all the these complex topics."
Last section of the course could be improved.
"Last section needs a ending congratulatory 1 minute video :-)."

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 REST APIs with Flask and Python in 2024 with these activities:
Review Python Crash Course, 2nd Edition
Get up to speed or refresh your knowledge on core Python concepts before the start of the course.
Show steps
  • Read Chapters 1-4
  • Complete the exercises and projects
Create a basic REST API using Flask
Put your skills to the test by building a simple REST API from scratch.
Browse courses on REST API
Show steps
  • Set up a Python development environment
  • Install Flask and any necessary libraries
  • Create a basic Flask app
  • Implement endpoints for CRUD operations
Solve REST API coding challenges
Reinforce your understanding of REST API concepts and coding techniques.
Browse courses on REST API
Show steps
  • Find online coding challenges or create your own
  • Attempt to solve the challenges on your own
Two other activities
Expand to see all activities and additional details
Show all five activities
Follow tutorials on advanced REST API features
Expand your knowledge and learn advanced techniques for building robust REST APIs.
Browse courses on REST API
Show steps
  • Identify areas where you want to improve your skills
  • Find tutorials that cover those topics
Develop a REST API for a real-world scenario
Apply your skills to solve a practical problem and create a valuable project for your portfolio.
Browse courses on REST API
Show steps
  • Identify a problem or opportunity that can be addressed using a REST API
  • Design and implement the REST API using Flask

Career center

Learners who complete REST APIs with Flask and Python in 2024 will develop knowledge and skills that may be useful to these careers:
Web Developer
A Web Developer designs and develops websites and web applications. The REST APIs with Flask and Python in 2024 course can help someone in this career role by providing them with the skills and knowledge necessary to develop REST APIs that can be used to power websites and web applications. This course can also be helpful for those who want to build a strong foundation in web development and REST APIs.
Software Engineer
A Software Engineer designs, implements, and maintains software systems. The REST APIs with Flask and Python in 2024 course can help someone in this career role by providing them with the skills and knowledge necessary to design, develop, and deploy REST APIs using Python, Flask, and Docker. This course can also be helpful for those who want to build a strong foundation in web development and REST APIs.
Data Analyst
A Data Analyst analyzes data to identify trends and patterns. The REST APIs with Flask and Python in 2024 course can help someone in this career role by providing them with the skills and knowledge necessary to develop REST APIs that can be used to access and manipulate data. This course can also be helpful for those who want to build a foundation in data analysis and REST APIs.
Database Administrator
A Database Administrator manages and maintains databases. The REST APIs with Flask and Python in 2024 course can help someone in this career role by providing them with the skills and knowledge necessary to develop REST APIs that can access and manipulate data in databases. This course can also be helpful for those who want to build a foundation in database administration and REST APIs.
Mobile Developer
A Mobile Developer designs and develops mobile applications. The REST APIs with Flask and Python in 2024 course can help someone in this career role by providing them with the skills and knowledge necessary to develop REST APIs that can be used to power mobile applications. This course can also be helpful for those who want to build a foundation in mobile development and REST APIs.
Cloud Architect
A Cloud Architect designs and manages cloud computing systems. The REST APIs with Flask and Python in 2024 course can help someone in this career role by providing them with the skills and knowledge necessary to design and develop REST APIs that can be deployed to the cloud. This course can also be helpful for those who want to build a foundation in cloud computing and REST APIs.
Data Scientist
A Data Scientist uses data to solve business problems. The REST APIs with Flask and Python in 2024 course can help someone in this career role by providing them with the skills and knowledge necessary to develop REST APIs that can be used to access and manipulate data. This course can also be helpful for those who want to build a foundation in data science and machine learning.
DevOps Engineer
A DevOps Engineer is responsible for the development and operation of software systems. The REST APIs with Flask and Python in 2024 course can help someone in this career role by providing them with the skills and knowledge necessary to develop REST APIs that can be deployed and operated in a DevOps environment. This course can also be helpful for those who want to build a foundation in DevOps and REST APIs.
Software Tester
A Software Tester tests software to find and fix bugs. The REST APIs with Flask and Python in 2024 course can help someone in this career role by providing them with the skills and knowledge necessary to develop REST APIs that are reliable and free of bugs. This course can also be helpful for those who want to build a foundation in software testing and REST APIs.
Product Manager
A Product Manager is responsible for the development and launch of new products. The REST APIs with Flask and Python in 2024 course can help someone in this career role by providing them with the skills and knowledge necessary to understand the technical aspects of product development. This course can also be helpful for those who want to build a foundation in product management and technology.
Systems Engineer
A Systems Engineer designs, implements, and maintains computer systems. The REST APIs with Flask and Python in 2024 course can help someone in this career role by providing them with the skills and knowledge necessary to develop REST APIs that can be used to manage and control computer systems. This course can also be helpful for those who want to build a foundation in systems engineering and REST APIs.
Technical Writer
A Technical Writer creates documentation for software and other technical products. The REST APIs with Flask and Python in 2024 course can help someone in this career role by providing them with the skills and knowledge necessary to understand the technical aspects of software development. This course can also be helpful for those who want to build a foundation in technical writing and software development.
Information Security Analyst
An Information Security Analyst protects computer systems and networks from unauthorized access and cyberattacks. The REST APIs with Flask and Python in 2024 course can help someone in this career role by providing them with the skills and knowledge necessary to develop REST APIs that are secure and protect against cyberattacks. This course can also be helpful for those who want to build a foundation in cybersecurity and REST APIs.
Game Developer
A Game Developer designs and develops video games. The REST APIs with Flask and Python in 2024 course can help someone in this career role by providing them with the skills and knowledge necessary to develop REST APIs that can be used to power online multiplayer games. This course can also be helpful for those who want to build a foundation in game development and REST APIs.
Business Analyst
A Business Analyst analyzes business processes to identify opportunities for improvement. The REST APIs with Flask and Python in 2024 course may be useful for someone in this career role by providing them with the skills and knowledge necessary to understand the technical aspects of software development. This course can also be helpful for those who want to build a foundation in business analysis and technology.

Reading list

We've selected 13 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 REST APIs with Flask and Python in 2024.
Comprehensive guide to Flask, a popular Python framework for building web applications. It covers everything from the basics of Flask to advanced topics like testing and deployment. This book is an excellent resource for anyone who wants to learn how to build web applications with Python.
Comprehensive guide to using Python for data analysis. It covers everything from the basics of Python to advanced topics like data visualization and machine learning. This book is an excellent resource for anyone who wants to learn how to use Python for data analysis.
Comprehensive guide to Python, a popular programming language. It covers topics such as basic syntax, data types, and control flow. It valuable resource for anyone who wants to learn Python.
Comprehensive guide to Python, a popular programming language. It covers topics such as basic syntax, data types, and control flow. It valuable resource for anyone who wants to learn Python.
Comprehensive guide to Python, a popular programming language. It covers topics such as basic syntax, data types, and control flow. It valuable resource for anyone who wants to learn Python.
Comprehensive guide to Python, a popular programming language. It covers topics such as basic syntax, data types, and control flow. It valuable resource for anyone who wants to learn Python.
Comprehensive guide to machine learning with Python. It covers everything from the basics of machine learning to advanced topics like deep learning and reinforcement learning. This book is an excellent resource for anyone who wants to learn how to use machine learning with Python.
Practical guide to deep learning with Python. It covers everything from the basics of deep learning to advanced topics like convolutional neural networks and recurrent neural networks. This book is an excellent resource for anyone who wants to learn how to use deep learning with Python.
Collection of Python recipes that cover a wide range of topics, from basic syntax to advanced programming techniques. It valuable resource for anyone who wants to learn more about Python.
Practical guide to using Docker for building and deploying applications. It covers everything from the basics of Docker to advanced topics like Docker Compose and Docker Swarm. This book is an excellent resource for anyone who wants to learn how to use Docker.
Comprehensive guide to Python, a popular programming language. It covers topics such as basic syntax, data types, and control flow. It valuable resource for anyone who wants to learn Python.

Share

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

Similar courses

Here are nine courses similar to REST APIs with Flask and Python in 2024.
Building a REST API with Python and Flask
Most relevant
Deploying a Pytorch Computer Vision Model API to Heroku
Most relevant
Web Development in Flask: Build Your First Website
Most relevant
Create Your First Web App with Python and Flask
Most relevant
FastAPI Fundamentals
Most relevant
The Complete FastAPI Course With OAuth & JWT...
Most relevant
Guided Project: Create your first RESTful API with Express
Most relevant
Guided Project: Create your first RESTful API with...
Most relevant
API and Web Service Introduction
Most relevant
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