The Fastapi Superguide: Create 3 Real-World Fastapi Apps

Posted By: ELK1nG

The Fastapi Superguide: Create 3 Real-World Fastapi Apps
Last updated 6/2022
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 2.99 GB | Duration: 6h 51m

Learn FastAPI, Python, REST APIs, Bootstrap, SQLite, Jinja, and web security; all while creating 3 full-stack web apps!

What you'll learn
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
Requirements
Basic experience in Python
Familiarity with HTML and CSS encouraged, but not required
Description
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 practicesUse 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 FastAPIUse database browsers and SQLAlchemy to create, manage, update, and parse SQLite databasesCreate user authentication and registration logic with error handlingUnderstand HTTP, how it works, and how to make requests, including methods, headers, bodies, and status codesFormat programmatic data to include in front-end pagesParse HTTP requests in python and extract relevant data, including parameters, form data, and request bodiesValidate HTTP routes and implement error handling in REST APIs and full-stack applicationsUnderstand JSON and how to both parse and return it using PythonUse Pydantic and type hints to create data models and schemas in PythonHash and verify passwords in PythonCreate OAuth2 flows and use them to authenticate users using FastAPI logicCreate, manage, and update JSON Web TokensCreate database models in Python and use them with FastAPI routesUse Alembic to migrate and update databasesUse SQLAlchemy to write functionality to interact with databases in PythonLearn best web development practices and conventionsAnd much more!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 hintsPydantic modelsNuanced 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 architectureJinja2BootstrapHTML templatingThe 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 schemesPassword hashingJSON web tokensFastAPI-specific authentication systemsAnd 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!

Overview

Section 1: Introduction & Setup

Lecture 1 Before you start

Lecture 2 Projects you will complete

Lecture 3 What will I learn in this course?

Lecture 4 Installing libraries & software

Lecture 5 Where to find project files

Section 2: Advanced Python & Concepts

Lecture 6 Notice about the following section

Lecture 7 Project Resources

Lecture 8 REST, CRUD, and HTTP requests

Lecture 9 What is FastAPI?

Lecture 10 Type hints

Lecture 11 Pydantic models

Lecture 12 CODING EXERCISE: Design a social media post model w/ Pydantic

Lecture 13 CODING EXERCISE (SOLUTION): Design a social media post model w/ Pydantic

Lecture 14 Virtual environments

Section 3: App 1: Car Information Viewer (Basic FastAPI, Jinja, Bootstrap)

Lecture 15 Project Preview - Car Information Viewer

Lecture 16 Project Resources

Lecture 17 Setting up app

Lecture 18 Creating a car model

Lecture 19 Get all cars path

Lecture 20 Get car by ID

Lecture 21 Adding cars

Lecture 22 Updating car

Lecture 23 Deleting car

Lecture 24 Course Check-In

Lecture 25 Setting up HTML templates

Lecture 26 Creating your first HTML response

Lecture 27 Header & footer components

Lecture 28 Designing a Navbar

Lecture 29 Creating the main page

Lecture 30 Notice about following lecture

Lecture 31 Creating a car component

Lecture 32 Adding a search feature

Lecture 33 Create car feature

Lecture 34 Edit car feature

Lecture 35 Delete car feature

Section 4: App 2: Social Media Feed w/ User Login (OAuth2, JWT, Security)

Lecture 36 Project Preview - Social Media Feed

Lecture 37 Project Resources

Lecture 38 Setting up app

Lecture 39 Creating models

Lecture 40 Creating base home page

Lecture 41 Creating login page

Lecture 42 Password hashing mechanism

Lecture 43 Notice about the following lecture

Lecture 44 Login mechanism: User verification

Lecture 45 Login mechanism: Login data route

Lecture 46 Logout mechanism

Lecture 47 Registration page

Lecture 48 Registration mechanism

Lecture 49 Displaying user information

Lecture 50 Notifications page

Lecture 51 Bug fixes & refactoring

Section 5: App 3: Todo List (SQL, UUID)

Lecture 52 Project Preview - Todo List

Lecture 53 Project resources

Lecture 54 Setting up app

Lecture 55 Creating header, footer, and navbar components

Lecture 56 Creating home page

Lecture 57 Setting up database

Lecture 58 Creating Pydantic models (schemas)

Lecture 59 Creating database models

Lecture 60 App setup with DB

Lecture 61 DB migrations & adjustments w/ Alembic

Lecture 62 Login page & mechanism: Setup & CRUD

Lecture 63 Login page & mechanism: Authentication

Lecture 64 Registration page & mechanism: Setup & CRUD

Lecture 65 Registration page & mechanism: Authentication

Lecture 66 Logout mechanism

Lecture 67 Todo page: List tasks

Lecture 68 Todo page: Add tasks

Lecture 69 Todo page: Complete tasks

Section 6: Goodbye & Next Steps

Lecture 70 Goodbye

Lecture 71 You made it! What's next?

Anyone looking to build full-stack applications and REST APIs with Python and Python frameworks