Skip to content

Commit 6ca8014

Browse files
committed
imports
1 parent 95cda2a commit 6ca8014

File tree

6 files changed

+72
-0
lines changed

6 files changed

+72
-0
lines changed

app/crud.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from sqlalchemy.orm import Session
2+
from . import models
3+
4+
5+
def create_user(db: Session, user: models.UserCreate):
6+
7+
db_user = models.User

app/database.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
from sqlalchemy import create_engine
2+
from dotenv import load_dotenv
3+
import os
4+
5+
load_dotenv()
6+
7+
8+
DB_NAME = os.getenv("DB_NAME")
9+
DB_USER = os.getenv("DB_USER")
10+
DB_PASSWORD = os.getenv("DB_PASSWORD")
11+
DB_HOST = os.getenv("DB_HOST")
12+
13+
DATABASE_URL = f"postgresql://{DB_USER}:{DB_PASSWORD}@{DB_HOST}/{DB_NAME}"
14+
15+
engine = create_engine(DATABASE_URL)

app/main.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
from fastapi import FastAPI
2+
from .routers.user import user_router
3+
from .database import engine
4+
5+
6+
app = FastAPI()
7+
8+
app.include_router(user_router)
9+
10+
#===========================#
11+
12+
@app.on_event("startup")
13+
async def startup():
14+
await engine.connect()
15+
16+
17+
@app.on_event("shutdown")
18+
async def shutdown():
19+
await engine.disconnect()

app/models.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
from pydantic import BaseModel
2+
3+
class UserCreate(BaseModel):
4+
name: str
5+
email: str
6+
password: str
7+
8+
9+
class UserUpdate(BaseModel):
10+
name: str
11+
email: str
12+
password: str

app/routers/user.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
from fastapi import APIRouter, Depends, HTTPException
2+
from sqlalchemy.orm import Session
3+
from sqlalchemy.ext.declarative import declarative_base
4+
from typing import List
5+
6+
from ..database import engine
7+
from ..models import UserCreate, UserUpdate
8+
from ..crud import create_user, get_user, update_user, elete_user
9+
10+
11+
Base = declarative_base()
12+
13+
Base.metadata.create_all(bind=engine)
14+
15+
router = APIRouter()
16+

requirements.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ click==8.1.3
44
dnspython==2.3.0
55
email-validator==1.3.1
66
fastapi==0.95.0
7+
greenlet==2.0.2
78
h11==0.14.0
89
httpcore==0.16.3
910
httptools==0.5.0
@@ -19,7 +20,9 @@ python-multipart==0.0.6
1920
PyYAML==6.0
2021
rfc3986==1.5.0
2122
sniffio==1.3.0
23+
SQLAlchemy==2.0.9
2224
starlette==0.26.1
25+
typing==3.7.4.3
2326
typing_extensions==4.5.0
2427
ujson==5.7.0
2528
uvicorn==0.21.1

0 commit comments

Comments
 (0)