This course starts with a Python refresher, advancing from basics to advanced features, and guides you through creating resource-based, production-ready REST APIs using Python, Flask, and popular extensions.
You'll handle secure user registration and authentication, utilize SQLAlchemy for efficient database management, and master deployment intricacies. Covering essential technologies like Git and Alembic for database migrations, you'll develop a REST API for client authentication and data management, enhancing your web and REST API development skills with Python, Flask, and Docker.
Learn to develop REST APIs, implement CRUD operations with SQLAlchemy, secure APIs with JWT authentication, manage user authentication with Flask-JWT-Extended, deploy applications using Docker and Render.com, and handle background tasks and emails with rq and Mailgun.
Designed for developers with basic programming knowledge, this course uses a hands-on approach with interactive coding exercises and real-world projects, ensuring practical exposure and effective learning. While a complete Python refresher is included, complete beginners may wish to take an introductory Python course beforehand.
Overview
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