REST APIs with Flask and Python

11h 56m 4s
English
Paid

Course description

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 one of the best resources online on creating REST APIs. I'm Jose, and I'm a software engineer; here to help you truly understand and develop your skills in web and REST API development with Python, using Flask.

Read more about the course

Production-ready REST APIs with Flask

This course will guide you in creating simple, intermediate, and advanced REST APIs including authentication, deployments, caching, 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-RESTful, Flask-JWT, and Flask-SQLAlchemy we will dive right into developing complete, solid, production-ready REST APIs.

We will also look into essential technologies Git, Heroku, and nginx.

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 and the performance of Flask REST APIs.

But what is a REST API anyway? Put simply, a REST API is an application that accepts data from clients and returns data back. With the data, it can do many things. For example, a REST API we build in this course accepts text data from the client, processes it and stores it in a database, and then returns some data back so the client can show something to the user.

When working with REST APIs, the client is usually a web app or mobile app. That's in contrast to web apps, where the client is usually the user themselves.

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. Let's take another step toward REST API mastery!

Requirements:
  • Some prior programming experience in any programming language will help. The course includes a full Python refresher course.
  • All software used in the course is provided, and completely free
  • Complete beginners may wish to take a beginner Python course first, and then transition to this course afterwards
Who this course is for:
  • Students wanting to extend the capabilities of mobile and web applications by using server-side technologies
  • Software developers looking to expand their skill-set by learning to develop professional grade REST APIs
  • Those looking to learn Python while specifically catering to web services

What you'll learn:

  • Connect web or mobile applications to databases and servers via REST APIs
  • Create secure and reliable REST APIs which include authentication, logging, caching, and more
  • 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

Watch Online

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 111 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing

Watch Online REST APIs with Flask and Python

0:00
/
#1: Introduction to this section

All Course Lessons (111)

#Lesson TitleDurationAccess
1
Introduction to this section Demo
01:02
2
Variables in Python
08:27
3
Solution to coding exercise: Variables
02:01
4
String formatting in Python
06:27
5
Getting user input
05:17
6
Writing our first Python app
03:20
7
Lists, tuples, and sets
06:32
8
Advanced set operations
04:40
9
Solution to coding exercise: Lists, tuples, sets
04:41
10
Booleans in Python
05:01
11
If statements
08:18
12
The 'in' keyword in Python
02:03
13
If statements with the 'in' keyword
08:19
14
Loops in Python
11:08
15
Solution to coding exercise: Flow control
03:09
16
List comprehensions in Python
07:25
17
Dictionaries
08:32
18
Destructuring variables
08:29
19
Functions in Python
10:42
20
Function arguments and parameters
07:41
21
Default parameter values
03:55
22
Functions returning values
07:20
23
Solution to coding exercise: Functions
02:31
24
Lambda functions in Python
07:53
25
Dictionary comprehensions
04:02
26
Solution to coding exercise: Dictionaries
06:17
27
Unpacking arguments
10:25
28
Unpacking keyword arguments
08:45
29
Object-Oriented Programming in Python
15:53
30
Magic methods: __str__ and __repr__
06:26
31
Solution to coding exercise: Classes and objects
05:05
32
@classmethod and @staticmethod
14:04
33
Solution to coding exercise: @classmethod and @staticmethod
05:55
34
Class inheritance
08:33
35
Class composition
06:09
36
Type hinting in Python 3.5+
05:09
37
Imports in Python
09:34
38
Relative imports in Python
08:54
39
Errors in Python
12:48
40
Custom error classes
05:05
41
First-class functions
07:53
42
Simple decorators in Python
07:13
43
The 'at' syntax for decorators
03:34
44
Decorating functions with parameters
02:25
45
Decorators with parameters
04:51
46
Mutability in Python
06:04
47
Mutable default parameters (and why they're a bad idea)
04:28
48
Overview of the project we'll build
04:01
49
Initial set-up for a Flask app
04:37
50
Your first REST API endpoint
04:06
51
What is JSON?
03:44
52
How to interact with and test your REST API
04:30
53
How to create stores in our REST API
05:38
54
How to create items in each store
07:56
55
How to get a specific store and its items
04:40
56
What are Docker containers and images?
13:29
57
How to run a Flask app in a Docker container
11:16
58
Data model improvements for our API
15:41
59
General improvements to our first REST API
07:08
60
New endpoints for our first REST API
09:06
61
How to run the API in Docker with automatic reloading and debug mode
06:27
62
How to use Blueprints and MethodViews in Flask
10:26
63
How to write marshmallow schemas for our API
04:02
64
How to perform data validation with marshmallow
04:32
65
Decorating responses with Flask-Smorest
04:40
66
Overview and why use SQLAlchemy
02:08
67
How to code a simple SQLAlchemy model
04:46
68
How to write one-to-many relationships using SQLAlchemy
09:43
69
How to configure Flask-SQLAlchemy with your Flask app
07:55
70
How to insert data into a table using SQLAlchemy
07:22
71
How to find models in the database by ID or return a 404
03:59
72
How to update models with SQLAlchemy
05:11
73
How to retrieve list of all models
00:50
74
How to delete models with SQLAlchemy
01:12
75
Conclusion of this section
03:54
76
Changes in this section
02:48
77
One-to-many relationship between stores and tags
10:54
78
Many-to-many relationship between items and tags
11:24
79
Who uses the JWT?
10:16
80
How to set up Flask-JWT-Extended with our app
04:17
81
Coding the User model and schema
02:08
82
How to add a register endpoint to the REST API
09:36
83
How to add a login endpoint to the REST API
08:39
84
Protect endpoints by requiring a JWT
06:01
85
JWT claims and authorization
05:56
86
How to add logout to the REST API
06:20
87
Request chaining with Insomnia
04:33
88
Token refreshing with Flask-JWT-Extended
09:31
89
How to add Flask-Migrate to our Flask app
01:39
90
Initialize your database with Flask-Migrate
05:43
91
Change SQLAlchemy models and generate a migration
05:02
92
Manually review and modify database migrations
03:20
93
What are Git repositories and commits?
09:44
94
Initialize a Git repository for our project
08:28
95
Writing Markdown for documents and commits
02:37
96
Remote repositories and how to use them
05:28
97
Git branches and merging
06:18
98
Merge conflicts and how to resolve them
05:31
99
Overview of the final e-book chapters
01:39
100
Creating a Render.com web service
05:55
101
How to run Flask with gunicorn in Docker
06:14
102
Get a deployed PostgreSQL database
01:52
103
Use PostgreSQL locally and in production
17:46
104
Test the finished production app
01:39
105
How to send emails with Python and Mailgun
04:48
106
How to send emails when users register
09:38
107
What is a task queue and setting up a Redis database
05:06
108
How to Populate and consume the task queue with rq
06:27
109
How to process background tasks with the rq worker
05:25
110
How to send HTML emails using Mailgun and Python
10:18
111
How to deploy a background worker to render.com
05:40

Unlock unlimited learning

Get instant access to all 110 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Comments

0 comments

Want to join the conversation?

Sign in to comment

Similar courses

Airbnb App Clone

Airbnb App Clone

Sources: Nomad Coders
REST API, GraphQL API, iOS / Android App. Make Airbnb App with Rest API and GraphQL API. Users can search, look and browse various homes..
17 hours 50 minutes 5 seconds
Python/Django + React QR Digital Menu Builder

Python/Django + React QR Digital Menu Builder

Sources: PythonYoga
Made for restaurants, cafes, pubs and hotels. Your customers can order from their table or from their couch at home.
10 hours 49 minutes 22 seconds
Visual Studio Code for Python Developers

Visual Studio Code for Python Developers

Sources: Talkpython
This course takes you hands-on through creating a real and meaningful Python project using FastAPI to give you a true sense of VS Code's potential and exposure to many of its fe...
4 hours 10 minutes 20 seconds
Eve: Building RESTful APIs with MongoDB and Flask

Eve: Building RESTful APIs with MongoDB and Flask

Sources: Talkpython
Eve is an open source Python REST API framework designed for human beings. It allows you to effortlessly build and deploy highly customizable, fully featured RE
5 hours 6 minutes 34 seconds