Skip to content

Commit f4e3dd4

Browse files
committed
debug - database functions
1 parent 6ca8014 commit f4e3dd4

File tree

6 files changed

+59
-11
lines changed

6 files changed

+59
-11
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1-
/__pycache__/
1+
/__pycache__
2+
/app/__pycache__
23
/venv
34
.env

app/crud.py

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,25 @@
44

55
def create_user(db: Session, user: models.UserCreate):
66

7-
db_user = models.User
7+
db_user = models.User(name=user.name, email=user.email, password=user.password)
8+
db.add(db_user)
9+
db.commit()
10+
db.refresh(db_user)
11+
return db_user
12+
13+
14+
def get_users(db: Session):
15+
16+
return db.query(models.User).all()
17+
18+
19+
20+
def get_user(db: Session, user_id: int):
21+
22+
return db.query(models.User).filter(models.User.id == user_id).first()
23+
24+
25+
def delete_user(db: Session, user_id: int):
26+
27+
db.query(models.User).filter(models.User.id == user_id).delete()
28+
db.commit()

app/database.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
from sqlalchemy import create_engine
22
from dotenv import load_dotenv
3+
from sqlalchemy.orm import sessionmaker
4+
from sqlalchemy.ext.declarative import declarative_base
35
import os
46

57
load_dotenv()
@@ -13,3 +15,17 @@
1315
DATABASE_URL = f"postgresql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}/{DB_NAME}"
1416

1517
engine = create_engine(DATABASE_URL)
18+
19+
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
20+
21+
22+
Base = declarative_base()
23+
24+
25+
def get_db():
26+
db = SessionLocal()
27+
try:
28+
yield db
29+
finally:
30+
db.close()
31+

app/main.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
from fastapi import FastAPI
2-
from .routers.user import user_router
2+
from .routers.user import router
33
from .database import engine
44

55

66
app = FastAPI()
77

8-
app.include_router(user_router)
8+
app.include_router(router)
99

1010
#===========================#
1111

app/models.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
from pydantic import BaseModel
2+
from .database import Base
3+
from sqlalchemy import Column, String
24

35
class UserCreate(BaseModel):
46
name: str
@@ -9,4 +11,13 @@ class UserCreate(BaseModel):
911
class UserUpdate(BaseModel):
1012
name: str
1113
email: str
12-
password: str
14+
password: str
15+
16+
17+
class User(Base):
18+
__tablename__ = "users"
19+
20+
id = Column(primary_key=True)
21+
name = Column(String, nullable=False)
22+
email = Column(String, nullable=False)
23+
password = Column(String, nullable=False)

app/routers/user.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,13 @@
33
from sqlalchemy.ext.declarative import declarative_base
44
from typing import List
55

6-
from ..database import engine
6+
from ..database import engine, get_db
77
from ..models import UserCreate, UserUpdate
8-
from ..crud import create_user, get_user, update_user, elete_user
8+
from ..crud import create_user, get_user, update_user, delete_user, get_users
99

1010

11-
Base = declarative_base()
12-
13-
Base.metadata.create_all(bind=engine)
14-
1511
router = APIRouter()
1612

13+
@router.get("/users")
14+
async def get_all_users(db: Session = Depends(get_db)):
15+
return get_users(db=db)

0 commit comments

Comments
 (0)