Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ Microsoft AZ-900
Photoshop Graphic Design Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Personal Development Mindfulness Meditation Personal Transformation Life Purpose Coaching Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Retargeting
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Analysis Data Modeling Big Data
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Freelancing Blogging Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee

This course includes:

  • 12.5 hours on-demand video
  • 14 articles
  • 145 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
Development Web Development REST API

Advanced REST APIs with Flask and Python

Take your REST APIs to a whole new level with this advanced Flask and Python course!
Rating: 4.4 out of 54.4 (588 ratings)
8,518 students
Created by Jose Salvatierra, Teclado by Jose Salvatierra
Last updated 11/2020
English
English
30-Day Money-Back Guarantee

What you'll learn

  • Integrate advanced functionality in your API such as image upload, payments, or user confirmation e-mails!
  • Bring your REST API development to a whole new level by getting familiar with more of the Flask ecosystem
  • Improve operations of existing REST APIs with database migrations and extensive refactoring knowledge
  • Easily deploy documentation pages and test your API with Postman's collection runner
Curated for the Udemy for Business collection

Course content

10 sections • 133 lectures • 12h 37m total length

  • Preview02:44
  • 4 things you should know before starting this course
    00:00
  • Preview01:05
  • Access the e-book for Section 1 here!
    00:31
  • Preview05:44
  • Preview09:53
  • Simplifying our error handling
    01:48
  • Refactoring our resources
    04:12
  • Should we have unique names?
    04:21
  • Adding basic type hinting
    08:33
  • Adding custom JSON types
    06:45
  • Using the current class as a type hint
    03:13
  • Using Black for code formatting
    10:09
  • Improving errors with constants
    08:02
  • @classmethod across the board
    06:56
  • Testing our API with Postman
    09:20
  • Conclusion of this section
    00:37

  • Introduction to this section
    00:41
  • Serialization with Marshmallow
    Preview08:45
  • Preview06:16
  • Migrating from virtualenv to Pipenv
    16:23
  • Postman collection for this section
    00:20
  • Using vanilla Marshmallow with the API
    14:23
  • A change to marshmallow-sqlalchemy
    00:31
  • Introduction to Flask-Marshmallow
    13:29
  • Adding items to our REST API
    12:38
  • Adding stores to our REST API
    09:27
  • Deduplicating error handling
    04:19
  • Conclusion of this section
    00:48

  • Introduction to this section
    01:42
  • Introduction to e-mail confirmation
    05:36
  • Postman collection for this section
    00:17
  • Adding an activated property
    03:28
  • Activating users manually
    06:00
  • Telling users they are active
    15:27
  • Setting up Mailgun
    03:12
  • Sending e-mails with Mailgun (Part 1)
    13:50
  • Sending e-mails with Mailgun (Part 2)
    03:43
  • Creating our Mailgun library file
    07:56
  • Using .env files in Flask
    05:48
  • Adding more configuration to .env
    01:52
  • Error handling in Mailgun
    09:10
  • Conclusion of this section
    01:15

  • Introduction to this section
    01:08
  • Postman collection for this section
    00:17
  • Creating the ConfirmationModel
    15:30
  • Changes in our UserModel
    08:11
  • Creating our ConfirmationResource
    17:24
  • Updating our UserResource
    05:03
  • Errata and code changes required
    00:25
  • Adding the last confirmation to the user schema
    03:27
  • Fixing our app.py
    06:27
  • Cross-resource dependencies are (generally) bad
    05:02
  • What are localisation and internationalisation?
    11:40
  • Storing strings in config files
    04:12
  • Creating a simple translation library
    09:44
  • Updating our resources to use translations
    10:55
  • Adding a new language to our API
    05:23
  • What is Flask-Babel?
    06:11
  • Common pitfalls and advice
    03:56
  • Conclusion of this section
    01:57

  • Introduction to this section
    01:27
  • Postman collection for this section
    00:27
  • Collection and request descriptions
    04:07
  • Recap of Postman environments
    04:36
  • JavaScript tests in Postman
    14:07
  • Running entire collections in Postman
    15:34
  • Adding example requests and responses
    08:48
  • Previewing our Postman documentation
    00:35
  • Publishing our documentation page
    03:47
  • More options for publishing documentation
    06:27
  • Conclusion of this section
    00:59

  • Introduction to this section
    00:34
  • Postman collection for this section
    00:17
  • Installing Flask-Uploads
    01:34
  • Config files in Flask
    16:41
  • What are wsgi and Werkzeug?
    12:06
  • Creating our image helper library
    16:56
  • Creating our image schema
    06:36
  • Creating our image upload resource
    09:10
  • Trying out our image upload
    08:22
  • Retrieving and deleting images
    09:59
  • Another example: user avatars
    10:58
  • Adding the avatar resource
    05:46
  • Conclusion of this section
    01:10

  • Introduction to this section
    01:16
  • Getting a PostgreSQL database
    00:29
  • What's in our starter code?
    01:27
  • Postman collection for this section
    00:17
  • Connecting to our remote database
    03:10
  • Initialising Flask-Migrate and Alembic
    06:32
  • Creating our initial table structure
    08:06
  • Our first database migration
    03:04
  • Checking the Alembic script (important!)
    06:21
  • Adding a new column with migrations
    02:01
  • Problems that can happen while migrating
    05:34
  • A word of caution!
    01:46
  • Defining a SQLAlchemy naming convention
    06:22
  • When should you read documentation?
    05:06
  • Conclusion of this section
    01:03

  • Introduction to this lecture
    00:58
  • Introduction to OAuth 2.0
    09:57
  • What's in our starter code?
    03:34
  • Postman collection for this section
    00:17
  • Creating a GitHub OAuth App
    03:56
  • Flask-OAuthlib
    04:13
  • Setting up our GitHub client
    07:49
  • Our GithubLogin resource
    05:30
  • What is Flask's g?
    05:45
  • What is a tokengetter?
    10:45
  • Finishing our GithubAuthorize resource
    05:42
  • Adding some error handling
    02:14
  • Setting user passwords
    08:42
  • Using url_for with Flask-RESTful
    02:59
  • Conclusion of this section
    01:08

  • Introduction to this section
    00:35
  • Setting up our Stripe account
    06:00
  • What's in our starter code?
    04:29
  • Postman collection for this section
    00:17
  • Where do users pay?
    06:43
  • After payment: receiving order data
    12:24
  • Creating our OrderModel
    11:12
  • Many-to-many relationships with SQLAlchemy
    10:26
  • Using the Association Object in our Resourcee
    16:36
  • Charging orders with Stripe
    10:29
  • Calculating the amount and description
    06:45
  • Testing our OrderResource
    04:12
  • Creating a way to view existing orders
    02:41
  • When things go wrong: error handling in Stripe
    04:26
  • Security considerations in payments
    03:11
  • Conclusion of this section
    01:06

  • Conclusion of the course
    00:35
  • Bonus lecture: other courses and next steps
    00:33

Requirements

  • Have programming experience with Python (preferable) or another Object-Oriented Programming language
  • Some knowledge of how the web works (requests and responses) will be helpful!
  • PyCharm (free) or another code editor

Description

Welcome to our Advanced REST API Course!

We created the most popular introductory REST API development course on Udemy, with over 4,000 reviews and 20,000 students. Now we want to help you get even farther with this Advanced REST API course, of course still using Flask and Python.

Our first course took you from zero to a deployed REST API that users could access. In this one we will cover a whole bunch of topics students have been requesting for months!

Topics covered

  • Use Marshmallow for data serialization and deserialization

  • Send e-mails and user confirmations

  • Upload images

  • Database migrations

  • Easy ways of writing documentation and testing your API

  • Handle payments using Stripe

  • Third party login using OAuth (GitHub is used as the example)

  • Extensive software development knowledge, refactoring, debugging, and more!

  • Use the latest technologies and the best practices. We teach everything using Python 3.7, the latest version.

Course structure

We’ll start with a simple REST API and teach you everything you need to know about it—so even if you’ve not taken our first course, you can follow along with absolutely no issues. We've even written an e-book to get you up to speed quickly with this starter REST API!

We introduce new features and technologies by baking them into this application so you can see how a professional REST API is developed. Every new feature is added to a fully working application and tested!

We’ll also help you understand more about how to build features incrementally to get them to your users quickly and minimise risk!

Extra resources

Many lectures contain extra resources, such as links to external documentation and projects, for you to go and learn more. And for each lecture, we include the source code at the start and at the end so you’ll never be lost. All source code is provided as downloadable and also in GitHub for your convenience.

We're always available to help in the Udemy Course Q&A and also our own student community Slack channel. Make use of these awesome resources!

Advanced course

Remember, this is our most advanced course yet! You should have enough programming experience with Python or another programming language. Some knowledge of how the web works is also really helpful.

You should have knowledge of how to install Python packages and how to run your Python applications. If you've used virtualenv or Pipenv before, that's excellent! Knowledge of PyCharm for debugging is also a plus, although we will cover using the debugger in the course!

Who this course is for:

  • Software developers working on a REST API who want to add advanced functionality to it
  • Backend developers interested in gaining knowledge of Flask and its ecosystem
  • Advanced developers of other programming languages who want to get up to speed quickly with Advanced REST API development in Python

Featured review

Aleksey Mochalin
Aleksey Mochalin
13 courses
3 reviews
Rating: 5.0 out of 5a year ago
Hello Jose, Thank you for that course! It is a really advanced part and I found here many new interesting things. You have a very good pronunciation and use very simple words to explain, but in the same time you save the main idea. Perfect for me! I wish you all good things! Regards, Aleksey

Instructors

Jose Salvatierra
Founder of Teclado and Software Engineer
Jose Salvatierra
  • 4.6 Instructor Rating
  • 39,702 Reviews
  • 176,665 Students
  • 9 Courses

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.

Coding is extremely rewarding. As you learn, things start to click and make sense. You can join the dots of all the things that weren't quite clear before. I'm here to make that journey quick and painless!

I can help you with Python and JavaScript issues, particularly in web and backend development. I'm experienced with programming libraries and frameworks like Flask, React, React Native, and AngularJS. I've worked extensively with UNIX systems, MongoDB, PostgreSQL, and advanced system architecture design.

Teclado by Jose Salvatierra
Software Development For Everyone
Teclado by Jose Salvatierra
  • 4.6 Instructor Rating
  • 39,702 Reviews
  • 173,971 Students
  • 9 Courses

Teclado was founded by best-selling instructor Jose Salvatierra to bring software development to everyone. We create and develop great, informative, and fun courses for you to advance your career and acquire new skills.

Excellent quality, superb student support, and on-demand topics mark our courses. We hope to see you on the inside!

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.