More comments in code
This commit is contained in:
parent
3698d46649
commit
1d9fa011a3
6 changed files with 32 additions and 2 deletions
|
@ -6,6 +6,7 @@ from . import models
|
|||
from . import schemas
|
||||
|
||||
|
||||
# SELECT * from users LIMIT 1
|
||||
def get_user(
|
||||
db: Session,
|
||||
user_id: int) -> Optional[models.User]:
|
||||
|
@ -16,6 +17,7 @@ def get_user(
|
|||
.first()
|
||||
|
||||
|
||||
# SELECT * from users
|
||||
def get_users(
|
||||
db: Session,
|
||||
skip: int = 0,
|
||||
|
@ -28,6 +30,7 @@ def get_users(
|
|||
.all()
|
||||
|
||||
|
||||
# INSERT INTO users
|
||||
def create_user(
|
||||
db: Session,
|
||||
user: schemas.UserCreate) -> models.User:
|
||||
|
|
|
@ -9,6 +9,7 @@ from sqlalchemy.orm import Session, sessionmaker
|
|||
from sqlalchemy.ext.declarative import declarative_base
|
||||
|
||||
|
||||
# Database configuration
|
||||
class SqlSettings(BaseSettings):
|
||||
db_host: str = '${REPO_NAME_SNAKE}_db'
|
||||
db_port: int = 3306
|
||||
|
@ -18,24 +19,31 @@ class SqlSettings(BaseSettings):
|
|||
|
||||
sql_settings = SqlSettings()
|
||||
|
||||
# DB connection URL
|
||||
db_url = (
|
||||
'mysql://{db_user}:{db_password}@'
|
||||
'{db_host}:{db_port}/{db_database}'
|
||||
).format(**sql_settings.dict())
|
||||
|
||||
|
||||
# SQLAlchemy engine object
|
||||
engine = create_engine(db_url)
|
||||
|
||||
# Create DB if not exists
|
||||
if not database_exists(db_url):
|
||||
create_database(db_url)
|
||||
|
||||
# SQLAlchemy Session object
|
||||
SessionLocal = sessionmaker(
|
||||
autoflush=False,
|
||||
bind=engine,
|
||||
)
|
||||
|
||||
# SQLAlchemy Base object
|
||||
Base = declarative_base()
|
||||
|
||||
|
||||
# FastAPI dependency
|
||||
async def get_db() -> AsyncGenerator[Session, None]:
|
||||
"""FastAPI dependency
|
||||
returning database Session object.
|
||||
|
|
|
@ -1,12 +1,16 @@
|
|||
from pydantic import BaseModel
|
||||
|
||||
|
||||
# Pydantic class for
|
||||
# INSERT queries on a User model
|
||||
class UserCreate(BaseModel):
|
||||
email: str
|
||||
name: str
|
||||
age: int
|
||||
|
||||
|
||||
# Pydantic class for
|
||||
# SELECT responses with User model(-s)
|
||||
class User(UserCreate):
|
||||
id: int
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue