Skip to content

Instantly share code, notes, and snippets.

View Joaopcamposs's full-sized avatar

João Pedro Campos Joaopcamposs

View GitHub Profile
# database.py
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
DATABASE_URL = "mysql+pymysql://user:@host:port/db_name"
db_engine = create_engine(DATABASE_URL)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=db_engine)
# models.py
from sqlalchemy.schema import Column
from sqlalchemy.types import String, Integer
from database import Base
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True, index=True, autoincrement=True)
# schemas.py
from pydantic import BaseModel
# To support creation and update APIs
class CreateAndUpdateUser(BaseModel):
name: str
email: str
password: str
# crud.py
from typing import List
from sqlalchemy.orm import Session
from exceptions import UserAlreadyExistError, UserNotFoundError
from models import User
from schemas import CreateAndUpdateUser
# Function to get list of users
# exceptions.py
class UserException(Exception):
...
class UserNotFoundError(UserException):
def __init__(self):
self.status_code = 404
self.detail = "User Not Found"
# api.py
from typing import List
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from crud import get_all_users, create_user, update_user, delete_user, get_user_by_id
from database import get_db
from exceptions import UserException
from schemas import Users, CreateAndUpdateUser
# main.py
from fastapi import FastAPI
import api
from crud import create_db
# initialize mysql database
create_db()
# initialize the app
# api.py
from typing import List
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
from crud import get_all_users, create_user, update_user_by_id, delete_user_by_id, get_user_by_id
from database import get_db
from exceptions import UserException
from schemas import Users, CreateAndUpdateUser
# crud.py
from typing import List
from sqlalchemy.orm import Session
from exceptions import UserAlreadyExistError, UserNotFoundError
from models import User
from schemas import CreateAndUpdateUser
# Function to get list of users
# pull official base image
FROM python:3.10
# set work directory
WORKDIR /app
# copy requirements file
COPY requirements.txt requirements.txt
# install dependencies