> ## Documentation Index
> Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Course: Python API Development with FastAPI

> This lesson guides you in building high-performance APIs with FastAPI, covering database interaction, authentication, testing, deployment, and CI/CD pipelines.

Notes for the **Python API Development with FastAPI** course: 135 lessons across 10 sections.

## Introduction

* [Introduction](/docs/Python-API-Development-with-FastAPI/Introduction/Introduction/page.md)
* [The app that we will be building](/docs/Python-API-Development-with-FastAPI/Introduction/The-app-that-we-will-be-building/page.md)

## Python Setup

* [Mac Install Vscode Setup](/docs/Python-API-Development-with-FastAPI/Python-Setup/Mac-Install-Vscode-Setup/page.md)
* [Windows Setup](/docs/Python-API-Development-with-FastAPI/Python-Setup/Windows-Setup/page.md)
* [Venv Basics](/docs/Python-API-Development-with-FastAPI/Python-Setup/Venv-Basics/page.md)
* [Windows Venv](/docs/Python-API-Development-with-FastAPI/Python-Setup/Windows-Venv/page.md)
* [Venv Mac](/docs/Python-API-Development-with-FastAPI/Python-Setup/Venv-Mac/page.md)

## FastAPI Basics

* [Initialize Fastapi Projects](/docs/Python-API-Development-with-FastAPI/FastAPI-Basics/Initialize-Fastapi-Projects/page.md)
* [Path Operations](/docs/Python-API-Development-with-FastAPI/FastAPI-Basics/Path-Operations/page.md)
* [Setting Up Postman](/docs/Python-API-Development-with-FastAPI/FastAPI-Basics/Setting-Up-Postman/page.md)
* [Post Requests](/docs/Python-API-Development-with-FastAPI/FastAPI-Basics/Post-Requests/page.md)
* [Schema Validation Pydantic](/docs/Python-API-Development-with-FastAPI/FastAPI-Basics/Schema-Validation-Pydantic/page.md)
* [Crud Basics Best Practices](/docs/Python-API-Development-with-FastAPI/FastAPI-Basics/Crud-Basics-Best-Practices/page.md)
* [Create Posts](/docs/Python-API-Development-with-FastAPI/FastAPI-Basics/Create-Posts/page.md)
* [Postman Saving Posts Collections](/docs/Python-API-Development-with-FastAPI/FastAPI-Basics/Postman-Saving-Posts-Collections/page.md)
* [Get One Post By Id](/docs/Python-API-Development-with-FastAPI/FastAPI-Basics/Get-One-Post-By-Id/page.md)
* [Path Order Matters](/docs/Python-API-Development-with-FastAPI/FastAPI-Basics/Path-Order-Matters/page.md)
* [Change Status Codes](/docs/Python-API-Development-with-FastAPI/FastAPI-Basics/Change-Status-Codes/page.md)
* [Deleting Posts](/docs/Python-API-Development-with-FastAPI/FastAPI-Basics/Deleting-Posts/page.md)
* [Updating Posts](/docs/Python-API-Development-with-FastAPI/FastAPI-Basics/Updating-Posts/page.md)
* [Auto Docs](/docs/Python-API-Development-with-FastAPI/FastAPI-Basics/Auto-Docs/page.md)
* [Adding Src Directory](/docs/Python-API-Development-with-FastAPI/FastAPI-Basics/Adding-Src-Directory/page.md)

## Working with Databases

* [Database Intro](/docs/Python-API-Development-with-FastAPI/Working-with-Databases/Database-Intro/page.md)
* [Database Windows Install](/docs/Python-API-Development-with-FastAPI/Working-with-Databases/Database-Windows-Install/page.md)
* [Database Mac](/docs/Python-API-Development-with-FastAPI/Working-with-Databases/Database-Mac/page.md)
* [Database Schema And Tables](/docs/Python-API-Development-with-FastAPI/Working-with-Databases/Database-Schema-And-Tables/page.md)
* [Pgadmin Ui](/docs/Python-API-Development-with-FastAPI/Working-with-Databases/Pgadmin-Ui/page.md)
* [First Sql Query](/docs/Python-API-Development-with-FastAPI/Working-with-Databases/First-Sql-Query/page.md)
* [Filter With Where](/docs/Python-API-Development-with-FastAPI/Working-with-Databases/Filter-With-Where/page.md)
* [Sql Operators](/docs/Python-API-Development-with-FastAPI/Working-with-Databases/Sql-Operators/page.md)
* [Sql In Operator](/docs/Python-API-Development-with-FastAPI/Working-with-Databases/Sql-In-Operator/page.md)
* [Sql Pattern Matching Like Keyword](/docs/Python-API-Development-with-FastAPI/Working-with-Databases/Sql-Pattern-Matching-Like-Keyword/page.md)
* [Sql Ordering Results](/docs/Python-API-Development-with-FastAPI/Working-with-Databases/Sql-Ordering-Results/page.md)
* [Limit Offset](/docs/Python-API-Development-with-FastAPI/Working-with-Databases/Limit-Offset/page.md)
* [Inserting Data](/docs/Python-API-Development-with-FastAPI/Working-with-Databases/Inserting-Data/page.md)
* [Deleting Data](/docs/Python-API-Development-with-FastAPI/Working-with-Databases/Deleting-Data/page.md)
* [Updating Data](/docs/Python-API-Development-with-FastAPI/Working-with-Databases/Updating-Data/page.md)

## Databases with Python

* [Setup App Database](/docs/Python-API-Development-with-FastAPI/Databases-with-Python/Setup-App-Database/page.md)
* [Connect To Database Python](/docs/Python-API-Development-with-FastAPI/Databases-with-Python/Connect-To-Database-Python/page.md)
* [Sql Retrieve Posts](/docs/Python-API-Development-with-FastAPI/Databases-with-Python/Sql-Retrieve-Posts/page.md)
* [Create Posts Sql](/docs/Python-API-Development-with-FastAPI/Databases-with-Python/Create-Posts-Sql/page.md)
* [Fetch Post By Id Sql](/docs/Python-API-Development-with-FastAPI/Databases-with-Python/Fetch-Post-By-Id-Sql/page.md)
* [Delete Posts Sql](/docs/Python-API-Development-with-FastAPI/Databases-with-Python/Delete-Posts-Sql/page.md)
* [Update Posts](/docs/Python-API-Development-with-FastAPI/Databases-with-Python/Update-Posts/page.md)
* [Orm Intro](/docs/Python-API-Development-with-FastAPI/Databases-with-Python/Orm-Intro/page.md)
* [Sqlalchemy Setup](/docs/Python-API-Development-with-FastAPI/Databases-with-Python/Sqlalchemy-Setup/page.md)
* [Sqlalchemy Created At Table](/docs/Python-API-Development-with-FastAPI/Databases-with-Python/Sqlalchemy-Created-At-Table/page.md)
* [Sqlalchemy Get All Posts](/docs/Python-API-Development-with-FastAPI/Databases-with-Python/Sqlalchemy-Get-All-Posts/page.md)
* [Create Post Sqlalchemy](/docs/Python-API-Development-with-FastAPI/Databases-with-Python/Create-Post-Sqlalchemy/page.md)
* [Get Post By Id Sqlalchemy](/docs/Python-API-Development-with-FastAPI/Databases-with-Python/Get-Post-By-Id-Sqlalchemy/page.md)
* [Sqlalchemy Delete Posts](/docs/Python-API-Development-with-FastAPI/Databases-with-Python/Sqlalchemy-Delete-Posts/page.md)
* [Sqlalchemy Update Posts](/docs/Python-API-Development-with-FastAPI/Databases-with-Python/Sqlalchemy-Update-Posts/page.md)

## Advanced FastAPI

* [Pydantic Sqlalchemy Models](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Pydantic-Sqlalchemy-Models/page.md)
* [Pydantic Models Deep Dive](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Pydantic-Models-Deep-Dive/page.md)
* [Pydantic Response Model](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Pydantic-Response-Model/page.md)
* [Creating User Table](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Creating-User-Table/page.md)
* [User Registration Path Operation](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/User-Registration-Path-Operation/page.md)
* [Hashing User Password](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Hashing-User-Password/page.md)
* [Get User By Id](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Get-User-By-Id/page.md)
* [Fastapi Routers](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Fastapi-Routers/page.md)
* [Router Prefix And Tags](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Router-Prefix-And-Tags/page.md)
* [Jwt Token Basics](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Jwt-Token-Basics/page.md)
* [Login Process Flow](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Login-Process-Flow/page.md)
* [Creating A Token](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Creating-A-Token/page.md)
* [OAuth2 Password Request Form](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/OAuth2-Password-Request-Form/page.md)
* [Verify User Is Logged In](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Verify-User-Is-Logged-In/page.md)
* [Protecting Routes](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Protecting-Routes/page.md)
* [Testing Expired Token](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Testing-Expired-Token/page.md)
* [Fetching User In Protected Route](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Fetching-User-In-Protected-Route/page.md)
* [Advanced Postman Features](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Advanced-Postman-Features/page.md)
* [Sql Relationship Basics](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Sql-Relationship-Basics/page.md)
* [Postgres Foreign Keys Configuring](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Postgres-Foreign-Keys-Configuring/page.md)
* [Sqlalchemy Foreign Keys](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Sqlalchemy-Foreign-Keys/page.md)
* [Update Post Schema To Include User](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Update-Post-Schema-To-Include-User/page.md)
* [Assigning Owner Id When Creating New Post](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Assigning-Owner-Id-When-Creating-New-Post/page.md)
* [Delete Update Only Your Own Posts](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Delete-Update-Only-Your-Own-Posts/page.md)
* [Retrieve Only Your Own Posts](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Retrieve-Only-Your-Own-Posts/page.md)
* [Sqlalchemy Relationships](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Sqlalchemy-Relationships/page.md)
* [Query Parameters](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Query-Parameters/page.md)
* [Cleanup Main Py File](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Cleanup-Main-Py-File/page.md)
* [Environment Variables](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Environment-Variables/page.md)
* [Vote Like Theory](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Vote-Like-Theory/page.md)
* [Creating Votes Table Pgadmin](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Creating-Votes-Table-Pgadmin/page.md)
* [Votes With Sqlalchemy](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Votes-With-Sqlalchemy/page.md)
* [Votes Route](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Votes-Route/page.md)
* [Sql Joins](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Sql-Joins/page.md)
* [Joins Sqlalchemy](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Joins-Sqlalchemy/page.md)
* [Get One Post Join](/docs/Python-API-Development-with-FastAPI/Advanced-FastAPI/Get-One-Post-Join/page.md)

## Database Migration

* [What Is Db Migration Tool](/docs/Python-API-Development-with-FastAPI/Database-Migration/What-Is-Db-Migration-Tool/page.md)
* [Alembic Setup](/docs/Python-API-Development-with-FastAPI/Database-Migration/Alembic-Setup/page.md)
* [First Revision](/docs/Python-API-Development-with-FastAPI/Database-Migration/First-Revision/page.md)
* [Rollback Alembic](/docs/Python-API-Development-with-FastAPI/Database-Migration/Rollback-Alembic/page.md)
* [Alembic Finish Rest Of Schema](/docs/Python-API-Development-with-FastAPI/Database-Migration/Alembic-Finish-Rest-Of-Schema/page.md)

## Deployment

* [What Is CORS](/docs/Python-API-Development-with-FastAPI/Deployment/What-Is-CORS/page.md)
* [Setup Git](/docs/Python-API-Development-with-FastAPI/Deployment/Setup-Git/page.md)
* [Deploy Heroku](/docs/Python-API-Development-with-FastAPI/Deployment/Deploy-Heroku/page.md)
* [Deploy Ubuntu VM](/docs/Python-API-Development-with-FastAPI/Deployment/Deploy-Ubuntu-VM/page.md)
* [Docker](/docs/Python-API-Development-with-FastAPI/Deployment/Docker/page.md)

## Testing

* [Testing Intro](/docs/Python-API-Development-with-FastAPI/Testing/Testing-Intro/page.md)
* [Writing First Test](/docs/Python-API-Development-with-FastAPI/Testing/Writing-First-Test/page.md)
* [Testing Flags](/docs/Python-API-Development-with-FastAPI/Testing/Testing-Flags/page.md)
* [Testing More Functions](/docs/Python-API-Development-with-FastAPI/Testing/Testing-More-Functions/page.md)
* [Parametrize](/docs/Python-API-Development-with-FastAPI/Testing/Parametrize/page.md)
* [Testing Classes](/docs/Python-API-Development-with-FastAPI/Testing/Testing-Classes/page.md)
* [Fixtures](/docs/Python-API-Development-with-FastAPI/Testing/Fixtures/page.md)
* [Testing Exceptions](/docs/Python-API-Development-with-FastAPI/Testing/Testing-Exceptions/page.md)
* [Fastapi Testclient](/docs/Python-API-Development-with-FastAPI/Testing/Fastapi-Testclient/page.md)
* [Pytest Flags](/docs/Python-API-Development-with-FastAPI/Testing/Pytest-Flags/page.md)
* [Create User Test](/docs/Python-API-Development-with-FastAPI/Testing/Create-User-Test/page.md)
* [Setup Test Database](/docs/Python-API-Development-with-FastAPI/Testing/Setup-Test-Database/page.md)
* [Create Destroy Database After Each Test](/docs/Python-API-Development-with-FastAPI/Testing/Create-Destroy-Database-After-Each-Test/page.md)
* [Setup Test Database With Fixtures](/docs/Python-API-Development-with-FastAPI/Testing/Setup-Test-Database-With-Fixtures/page.md)
* [Trailing Slashes In Path](/docs/Python-API-Development-with-FastAPI/Testing/Trailing-Slashes-In-Path/page.md)
* [Fixture Scope](/docs/Python-API-Development-with-FastAPI/Testing/Fixture-Scope/page.md)
* [Test User Fixture](/docs/Python-API-Development-with-FastAPI/Testing/Test-User-Fixture/page.md)
* [Validate Token](/docs/Python-API-Development-with-FastAPI/Testing/Validate-Token/page.md)
* [Conftest Py File](/docs/Python-API-Development-with-FastAPI/Testing/Conftest-Py-File/page.md)
* [Failed Login Test](/docs/Python-API-Development-with-FastAPI/Testing/Failed-Login-Test/page.md)
* [Get All Posts Test](/docs/Python-API-Development-with-FastAPI/Testing/Get-All-Posts-Test/page.md)
* [Posts Fixture Create Test Posts](/docs/Python-API-Development-with-FastAPI/Testing/Posts-Fixture-Create-Test-Posts/page.md)
* [Unauthorized Get Posts](/docs/Python-API-Development-with-FastAPI/Testing/Unauthorized-Get-Posts/page.md)
* [Get One Post Test](/docs/Python-API-Development-with-FastAPI/Testing/Get-One-Post-Test/page.md)
* [Test Create Post](/docs/Python-API-Development-with-FastAPI/Testing/Test-Create-Post/page.md)
* [Delete Post](/docs/Python-API-Development-with-FastAPI/Testing/Delete-Post/page.md)
* [Update Post Test](/docs/Python-API-Development-with-FastAPI/Testing/Update-Post-Test/page.md)
* [Test Voting](/docs/Python-API-Development-with-FastAPI/Testing/Test-Voting/page.md)

## CI/CD

* [CI CD Basics](/docs/Python-API-Development-with-FastAPI/CICD/CI-CD-Basics/page.md)
* [Configuring First CI CD Pipeline](/docs/Python-API-Development-with-FastAPI/CICD/Configuring-First-CI-CD-Pipeline/page.md)
* [Configuring Python in Pipeline](/docs/Python-API-Development-with-FastAPI/CICD/Configuring-Python-in-Pipeline/page.md)
* [Environment Variables](/docs/Python-API-Development-with-FastAPI/CICD/Environment-Variables/page.md)
* [GitHub Actions Secrets](/docs/Python-API-Development-with-FastAPI/CICD/GitHub-Actions-Secrets/page.md)
* [Adding PostgreSQL Database](/docs/Python-API-Development-with-FastAPI/CICD/Adding-PostgreSQL-Database/page.md)
* [Building Docker Images](/docs/Python-API-Development-with-FastAPI/CICD/Building-Docker-Images/page.md)
* [Implementing Continuous Delivery](/docs/Python-API-Development-with-FastAPI/CICD/Implementing-Continuous-Delivery/page.md)
* [Python API Outro](/docs/Python-API-Development-with-FastAPI/CICD/Python-API-Outro/page.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.