Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
VideoLab by Jad Khalili

There is a lot that goes into full stack web development.

With databases, REST architecture, HTTP requests, OAuth2, and all the other protocols that go alongside full stack web development, it can be hard to learn, especially when coupled with a complicated framework like FastAPI and the nuanced parts of Python.

This course aims to eliminate that confusion by teaching FastAPI from the very basics to the advanced level. It combines theory and practical use to give you everything you need to learn FastAPI, all while allowing you to build 3 full-stack web applications written primarily in Python along the way.

Read more

There is a lot that goes into full stack web development.

With databases, REST architecture, HTTP requests, OAuth2, and all the other protocols that go alongside full stack web development, it can be hard to learn, especially when coupled with a complicated framework like FastAPI and the nuanced parts of Python.

This course aims to eliminate that confusion by teaching FastAPI from the very basics to the advanced level. It combines theory and practical use to give you everything you need to learn FastAPI, all while allowing you to build 3 full-stack web applications written primarily in Python along the way.

Throughout the course, you will:

  • Create 3 full-stack applications using FastAPI in Python and industry-standard practices

  • Use Jinja2, Bootstrap, HTML, and CSS to create front-end templates with control flow (conditionals, loops, etc.)

  • Fundamentally understand

And the best part is; you don't have to know anything about FastAPI, web routing, security, or any of the above. All you need is a basic understanding of Python and some familiarity with HTML and CSS, and you will be on your way to becoming a master of full stack web development in Python and FastAPI.

The curriculum takes a comprehensive look at both FastAPI and the technologies needed to build it. Before we start building any apps, we take a look at the basics of Python, including:

  • Type hints

  • Pydantic models

  • Nuanced Python features that make development much easier, such as virtual environments.

At the end of section, there is a coding exercise and quiz that incorporate all content covered to ensure understanding.

Once the basics are covered, we start by building the first of three full stack web applications. In the first app, we focus on the basics of FastAPI by teaching:

  • REST API architecture

  • Jinja2

  • Bootstrap

  • HTML templating

  • The foundational FastAPI skills needed to get a basic application up and running.

Along the way, we will be building a car information viewer that lets you view, search, create, edit, and delete information about cars, all delivered in a clean and readable codebase using Python and FastAPI.

The home page contains a list of all the cars in our database, which is neatly formatted and displayed to the user in a gridlike manner.

The navbar contains working links to the home page, a form to create a car (more on that later. ), and an embedded search bar which, when used, takes you to a search page.

The search form uses IDs to search the database for cars, and displays them to the user. It also contains error handling in case an invalid ID is passed to the user.

Each car on the page has edit and delete buttons, with the edit button taking you to an auto-filled form on a separate page to edit the data, and the delete button passing a request to a hidden route that removes it from the database.

The create form is identical to the edit form, except it has no auto-filled data. When completed, it will redirect to the home page, where the newly created car will be available to view.

The second app focuses on web security, incorporating:

  • OAuth2 flows and schemes

  • Password hashing

  • JSON web tokens

  • FastAPI-specific authentication systems

  • And industry-standard practices into a main FastAPI application written in Python.

This will be built around a social media feed that uses login and registration functionality to display user information under a protected page.

The home page is available to everyone, and contains some basic text prompting the user to login. The navbar contains links to a login, registration, and logout page, all with custom error messaging to ensure new users are unique and attempted logins are properly authenticated.

The protected page contains data about the user which is displayed in a responsive grid to the user. This displays user information, friends, and notifications.

The logout feature removes any of the authentication applied to the web session and redirects to the homepage.

The third app focuses on databases, using SQLite and SQLAlchemy to build and model databases in Python and FastAPI. You will also learn to use Alembic in combination with SQLAlchemy to perform database migrations and updates.

These topics will be built around a todo list that combines user login with SQLite databases to create a full stack web application, incorporating all the elements of FastAPI, Python, OAuth2, and all the other practices learned up to that point.

Similar to the second app, the homepage is available to everyone and prompts the user to log in.

The login, registration, and logout features use the same FastAPI logic to handle authentication as the previous app, except this time, data is being pulled from a real SQLite database. This is combined with past knowledge to create authentication that works with FastAPI.

The todo page contains a list of all the tasks that pertain to the user. At the bottom of the list is a form that lets you add a new task, which sends a request to a route that handles parsing and adding the task to the user's list of tasks through advanced, FastAPI-specific Python logic.

So, are you ready to start crushing web development and building full stack web applications in FastAPI and Python? Enroll and start your FastAPI journey today.

Enroll now

What's inside

Learning objectives

  • Create 3 full-stack applications using fastapi in python and industry-standard practices
  • Use jinja2, bootstrap, html, and css to create front-end templates with control flow (conditionals, loops, etc.)
  • Fundamentally understand rest api architecture and how to implement rest apis in fastapi
  • Use database browsers and sqlalchemy to create, manage, update, and parse sqlite databases
  • Create user authentication and registration logic with error handling
  • Understand http, how it works, and how to make requests, including methods, headers, bodies, and status codes
  • Format programmatic data to include in front-end pages
  • Parse http requests in python and extract relevant data, including parameters, form data, and request bodies
  • Validate http routes and implement error handling in rest apis and full-stack applications
  • Understand json and how to both parse and return it using python
  • Use pydantic and type hints to create data models and schemas in python
  • Hash and verify passwords in python
  • Create oauth2 flows and use them to authenticate users
  • Create, manage, and update json web tokens
  • Create database models in python
  • Use alembic to migrate and update databases
  • Use sqlalchemy to write functionality to interact with databases in python
  • Learn best web development practices and conventions
  • Show more
  • Show less

Syllabus

Before you start
Introduction & Setup
Projects you will complete
What will I learn in this course?
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Uses Jinja2, Bootstrap, HTML, and CSS to create front-end templates, which are essential skills for front-end web development
Covers REST API architecture and implementation in FastAPI, which is crucial for building modern web applications
Teaches OAuth2 flows and JSON Web Tokens, which are industry-standard practices for user authentication and authorization
Employs SQLite and SQLAlchemy for database management, which are valuable skills for building data-driven applications
Requires familiarity with HTML and CSS, which may pose a challenge for learners without prior experience in these technologies
Uses Alembic for database migrations and updates, which is a valuable tool for managing database schema changes in development

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Practical fastapi with real-world apps

According to learners, this course is a highly practical and effective way to learn FastAPI by building three distinct real-world applications. Students praise the clear explanations and the step-by-step approach that builds complexity gradually. The focus on OAuth2, JWT, and database integration is highlighted as particularly valuable for building production-ready applications. Some students note the course assumes a solid understanding of Python basics and that the pace can be quick at times, suggesting it might be best for those already comfortable with the language.
Dependencies may require updates.
"As with any tech course, library versions can change, requiring minor code adjustments during setup."
"Encountered small issues with dependencies that needed troubleshooting based on newer versions."
"Keeping the examples aligned with the latest library versions would be helpful."
Moves quickly; some topics could be deeper.
"I felt the depth on certain advanced database concepts could be expanded upon."
"The course progresses at a good pace, but some complex areas might need review or external resources."
"It covers a lot of ground, which means some sections feel a bit fast-paced."
Requires comfort with Python basics.
"While it says basic Python is enough, being comfortable with more advanced features helps a lot."
"Some sections move quickly, and a strong Python background makes it easier to keep up."
"Suggest brushing up on Python topics like type hints and virtual environments beforehand."
Provides a solid base for FastAPI.
"This course gave me a really solid foundation in FastAPI and building web APIs."
"It covers the fundamental concepts needed to get started with FastAPI effectively."
"I feel much more confident starting my own FastAPI projects after taking this course."
Addresses auth, databases, and security.
"Loved how it covered crucial backend topics like OAuth2, JWT, and SQLAlchemy – essential for real apps."
"The section on web security was particularly insightful and immediately applicable to projects."
"Learning how to integrate databases and handle user authentication properly was a major takeaway for me."
Instructor explains concepts clearly and concisely.
"The instructor does a fantastic job of explaining complex topics in an easy-to-understand manner."
"I appreciated the clear and structured way the material was presented throughout the course."
"Every step is explained well, making it easy to follow along even when tackling new concepts."
Learn by building practical, real apps.
"The hands-on approach building 3 distinct applications made learning FastAPI incredibly concrete and applicable."
"Building the social media and todo list apps helped solidify complex concepts like auth and databases."
"I found the projects to be the most valuable part, really showing how to use FastAPI in practical scenarios."

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 The FastAPI SuperGuide: Create 3 Real-World FastAPI Apps with these activities:
Review REST API Architecture
Reviewing REST API architecture will provide a solid foundation for understanding how FastAPI applications are structured and how they interact with clients.
Browse courses on REST APIs
Show steps
  • Read articles and documentation on REST principles.
  • Study examples of well-designed REST APIs.
  • Practice designing API endpoints for common use cases.
Practice HTML and CSS Fundamentals
Practicing HTML and CSS will help you create better front-end templates with Jinja2 and Bootstrap, which are used extensively in the course projects.
Browse courses on HTML
Show steps
  • Complete online tutorials on HTML and CSS basics.
  • Build simple web pages using HTML and CSS.
  • Experiment with different CSS frameworks like Bootstrap.
Read 'Python Crash Course'
Reading 'Python Crash Course' will help solidify your Python fundamentals, which are essential for understanding and working with FastAPI.
Show steps
  • Read the chapters covering basic Python syntax and data structures.
  • Complete the exercises at the end of each chapter.
  • Focus on understanding functions and object-oriented programming.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Build a Simple API with FastAPI
Starting a small API project will allow you to apply the concepts learned in the course and gain hands-on experience with FastAPI.
Show steps
  • Set up a new FastAPI project with a virtual environment.
  • Define API endpoints for basic CRUD operations.
  • Implement data validation using Pydantic models.
  • Test the API endpoints using a tool like Postman.
Document Your FastAPI Learning Journey
Creating a blog or documentation will help you solidify your understanding of FastAPI concepts and share your knowledge with others.
Show steps
  • Choose a platform for your blog or documentation (e.g., Medium, GitHub Pages).
  • Write articles or tutorials on specific FastAPI topics.
  • Include code examples and explanations in your content.
  • Share your content on social media and online forums.
Read 'SQLAlchemy: The Definitive Guide'
Reading 'SQLAlchemy: The Definitive Guide' will deepen your understanding of SQLAlchemy and how to use it effectively with FastAPI.
View Essential SQLAlchemy on Amazon
Show steps
  • Read the chapters covering database modeling and querying.
  • Study the examples of using SQLAlchemy with FastAPI.
  • Experiment with different database configurations and migrations.
Contribute to a FastAPI Open Source Project
Contributing to open source projects will provide valuable experience working with real-world FastAPI applications and collaborating with other developers.
Show steps
  • Find a FastAPI open source project on GitHub.
  • Identify a bug or feature to work on.
  • Submit a pull request with your changes.
  • Participate in code reviews and discussions.

Career center

Learners who complete The FastAPI SuperGuide: Create 3 Real-World FastAPI Apps will develop knowledge and skills that may be useful to these careers:
Web Developer
A web developer designs, builds, and maintains websites and web applications. This course directly aligns with the work of a web developer because it covers the creation of full stack web applications using FastAPI in Python. You will learn to build applications from scratch, incorporating front-end technologies like HTML, CSS, and Jinja2. The course emphasizes industry-standard practices, teaching you how to implement REST APIs, manage databases with SQLAlchemy, and secure applications with OAuth2 and JSON Web Tokens. A web developer should take this course to build a strong foundation in full-stack development with FastAPI.
Full-Stack Developer
A full stack developer works on both the front-end and back-end aspects of web applications. This course is designed for the full stack developer, providing comprehensive training in FastAPI, Python, and related technologies. You will gain experience building three full-stack applications, learning how to create front-end templates with Jinja2, manage databases with SQLAlchemy, and implement user authentication. The course covers REST API architecture, HTTP requests, and web security, equipping you with the skills needed to build complete web applications. A full stack developer should enroll to enhance their skills in modern Python-based web development.
Application Developer
An application developer creates software applications for various platforms, including web, mobile, and desktop. This course is highly relevant for an application developer who wants to specialize in web application development with Python and FastAPI. It will provide you with the skills to build full stack applications, manage databases, implement user authentication, and create REST APIs. You will learn how to use technologies like Jinja2, Bootstrap, and SQLAlchemy to build interactive and data-driven applications. An application developer should consider this course to enhance their expertise in web application development.
Backend Developer
A backend developer focuses on the server-side logic and databases that power web applications. This course is highly relevant to the backend developer role, as it dives deep into creating REST APIs with FastAPI, managing databases using SQLAlchemy and SQLite, and implementing user authentication with OAuth2. You will learn how to handle HTTP requests, parse JSON data, and build secure and scalable backend systems. The FastAPI SuperGuide may be particularly useful for a backend developer who wants to master Python-based backend development and build robust APIs.
API Developer
An API developer specializes in designing, building, and maintaining application programming interfaces that enable communication between different software systems. This course directly applies to the work of an API developer, by teaching REST API architecture and implementation using FastAPI. You will learn how to handle HTTP requests, validate routes, and implement error handling. The course also covers JSON parsing and generation, Pydantic models, and best practices for designing scalable APIs. An API developer may find this course useful to enhance their skills in building robust and efficient APIs with FastAPI.
Software Engineer
A software engineer designs, develops, and tests software applications. This course is valuable for a software engineer interested in web development with Python and FastAPI. It provides a comprehensive understanding of full stack web development, covering topics such as REST APIs, database management, and user authentication. You will learn how to build scalable and maintainable applications using industry-standard practices. The FastAPI SuperGuide may be especially useful for a software engineer who wants to expand their skill set and build web-based solutions.
Data Engineer
A data engineer designs, builds, and maintains data pipelines and infrastructure. While this course is not directly focused on data engineering, the skills learned can be beneficial. You will learn how to manage databases with SQLAlchemy and SQLite, which are essential skills for working with data storage systems. Additionally, the course covers REST API architecture, which is useful for building data-related services. The FastAPI SuperGuide may be useful for a data engineer who wants to expand their knowledge of backend development and API design.
DevOps Engineer
A DevOps engineer focuses on automating and streamlining the software development and deployment process. While this course is not directly focused on DevOps, the skills learned can be valuable. You will learn how to build and deploy web applications using FastAPI, which is essential for creating microservices and REST APIs. You will also gain experience with database management and user authentication, which are important for securing and managing applications in a production environment. The FastAPI SuperGuide may be useful for a DevOps engineer who wants to understand the application development process better.
Machine Learning Engineer
A machine learning engineer develops and deploys machine learning models. This course may be useful for a machine learning engineer who wants to deploy their models as web services using FastAPI. You will learn how to build REST APIs, handle HTTP requests, and manage data with SQLAlchemy and SQLite. The FastAPI SuperGuide may be useful for a machine learning engineer who wants to integrate their models into web applications and make them accessible to a wider audience.
Software Architect
A software architect designs the overall structure and architecture of software systems. This course may be useful for a software architect who needs to understand the details of web application development with Python and FastAPI. You will gain insights into REST API design, database management, and user authentication, which are important considerations when designing scalable and maintainable web applications. The FastAPI SuperGuide covers industry-standard practices and helps build a foundation in modern web development, which can inform architectural decisions.
Security Engineer
A security engineer is responsible for protecting computer systems and networks from threats. This course covers several security-related topics, including password hashing, OAuth2 flows, and JSON Web Tokens, making it somewhat relevant to the security engineer role. You will learn how to implement user authentication and authorization in web applications using FastAPI. The FastAPI SuperGuide may be useful for building a better understanding of web application security and how to implement secure coding practices.
Cloud Engineer
A cloud engineer manages and maintains cloud infrastructure and services. While not directly related, this course may be useful for a cloud engineer who wants to understand how web applications are built and deployed in the cloud. You will learn how to build and deploy web applications using FastAPI, which can provide insights into the application development process. The FastAPI SuperGuide may be useful for a cloud engineer who wants to expand their knowledge of application development
Database Administrator
A database administrator manages and maintains databases. This course covers database management with SQLAlchemy and SQLite, which are relevant skills for a database administrator. You will learn how to create, manage, and update databases, as well as perform database migrations using Alembic. The FastAPI SuperGuide may be useful for a database administrator who wants to expand their knowledge of Python-based database interactions and how to integrate databases with web applications.
Technical Lead
A technical lead manages a team of developers and guides the technical direction of projects. This course may be useful for a technical lead who needs to understand the intricacies of web development with Python and FastAPI. You will gain a comprehensive knowledge of full stack web development, covering topics such as REST APIs, database management, and user authentication. The FastAPI SuperGuide can help the technical lead make informed decisions about technology choices and project architecture.
Data Scientist
A data scientist analyzes data to extract insights and build predictive models. This course may be useful for a data scientist who wants to build web applications to showcase their models or create data-driven APIs. You will learn how to build REST APIs with FastAPI, which can be used to expose data science models as services. Additionally, the course covers database management, which is useful for storing and retrieving data. The FastAPI SuperGuide may be beneficial for a data scientist who wants to communicate insights effectively.

Reading list

We've selected two 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 The FastAPI SuperGuide: Create 3 Real-World FastAPI Apps.
Provides an in-depth look at SQLAlchemy, the Python SQL toolkit and Object Relational Mapper used in the course. It covers topics such as database modeling, querying, and working with Alembic for database migrations. It is particularly useful for the third project, which focuses on databases. This book is commonly used as a reference by industry professionals.
Provides a solid foundation in Python programming, covering essential concepts like data structures, functions, and object-oriented programming. It's particularly useful for those with limited Python experience. While not directly focused on web development, it equips learners with the necessary Python skills to tackle FastAPI projects. It is best used as a reference text.

Share

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

Similar courses

Similar courses are unavailable at this time. Please try again later.
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 - 2025 OpenCourser