Overview
Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
This course features Coursera Coach!
A smarter way to learn with interactive, real-time conversations that help you test your knowledge, challenge assumptions, and deepen your understanding as you progress through the course.
In this comprehensive course, you will master the art of building REST APIs using Flask and Python. You will start by refreshing your Python fundamentals, focusing on key concepts like data structures, functions, and object-oriented programming. With this foundation, you'll quickly dive into the world of Flask, learning how to create REST API endpoints, handle data, and manage databases using SQLAlchemy.
As you progress, you’ll discover advanced techniques such as Docker containerization, API testing with Insomnia, and securing your APIs with JWT authentication. The course also includes hands-on projects, such as building a fully functional REST API that connects to a PostgreSQL database, and deploying it on Render.com for real-world application.
Ideal for Python developers looking to expand their skills in web development, this course covers everything from simple API setup to advanced features like background task queues and email notifications. By the end of the course, you’ll be able to confidently build and deploy modern REST APIs using Flask, and manage them effectively with industry-standard tools.
Syllabus
- Welcome
- In this module, we will present the highlights and benefits of mastering REST APIs with Flask and Python. You'll gain insights into the significance of this skill set for your professional growth and be encouraged to dive into the learning experience.
- A Full Python Refresher
- In this module, we will comprehensively review essential Python programming concepts, covering variables, data structures, control flow, functions, object-oriented programming, and more. This section will reinforce your Python knowledge and prepare you for advanced applications in API development.
- Your first REST API
- In this module, we will guide you through building your first REST API using Flask. You'll learn to set up the Flask app, create endpoints, and interact with the API using JSON, laying the groundwork for more complex projects.
- Introduction to Docker
- In this module, we will introduce Docker and demonstrate how to containerize your Flask application. You will learn to use Docker and Docker Compose to streamline development and deployment processes.
- Flask-Smorest for more efficient development
- In this module, we will explore the Flask-Smorest extension to improve your API development process. You'll learn to enhance data models, create new endpoints, and use Flask-Smorest for decorating responses and validating data.
- Store data in a SQL database with SQLAlchemy
- In this module, we will cover integrating SQLAlchemy with Flask for robust database management. You'll learn to create and manage database models, handle relationships, and perform CRUD operations efficiently.
- Many-to-many relationships with SQLAlchemy
- In this module, we will delve into complex data relationships using SQLAlchemy. You will learn to implement one-to-many and many-to-many relationships, optimizing your database models for real-world scenarios.
- User authentication with Flask-JWT-Extended
- In this module, we will explore user authentication with Flask-JWT-Extended. You will learn to integrate JWT-based authentication, create registration and login endpoints, and secure your API endpoints effectively.
- Database migrations with Alembic and Flask-Migrate
- In this module, we will introduce Alembic and Flask-Migrate for handling database migrations. You will learn to set up, initialize, and manage database schemas, ensuring smooth transitions during development.
- Git Crash Course
- In this module, we will provide a crash course on Git, covering the basics of version control, branching, merging, and resolving conflicts. You will learn to manage your code efficiently and collaborate effectively using Git.
- Deployments with Render.com
- In this module, we will guide you through deploying your Flask applications on Render.com. You will learn to set up web services, manage PostgreSQL databases, and test your applications to ensure stability in production.
- Task Queues with rq and sending emails
- In this module, we will cover task queues and background task management using rq. You will learn to send emails with Mailgun, manage task queues, and deploy background task workers, enhancing the functionality and reliability of your Flask applications.
Taught by
Packt - Course Instructors