Skip to content

Repository files navigation

Learning FastAPI

In this repo I intend to dive into the intricacies of FastApi framework, while following along to Corey Schafer's guide.

Core technologies learnt:

  • using jinja2 templates
  • styling with bootstrap
  • validation and error handling
  • pydantic schemas & models for data validation
  • using SQLAlchemy ORM
  • performing CRUD(Create, Read, Update, Delete) operations
  • making your app asynchronous
  • routers with APIRouter
  • forms
  • authentication: registration & login
  • authorization: protecting routes
  • file uploads: image processing , validation & storage
  • pagination
  • password resets & background processes
  • database migrations with alembic & PostgreSql MariaDb
  • moving files to the cloud with AWS S3 & Boto
  • testing with pytest
  • deployment with nginx & custom domains
  • deployment with docker & serverless containers

detours

  • thorough modularization of the application earlier on. Was accustomed to the good old factory settings from flask, hence applied that methodology here.
  • implement code reusability by defining a "utils" directory, where I placed small Classes & functions for reuse.
  • do tokens expire even when a user is active? figure out to to see if user is active in the frontend and prolong token expiration
  • implement oauth with google
  • add protected admin only routes for admins only
  • add an admin panel
  • used Resend instead of MailTrap
  • when user is logged in and they change their password, all prior sessions must be terminated. for security
  • use a taskque for emails, although not critical. e.g Celery, Rabitt Mq
  • use MariaDB+aiomysql instead of Postgres+pscoppg. why?

About

the one where I learn fastapi

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages