From 855a9971cb3ded67b7aa263480a4300387df30e1 Mon Sep 17 00:00:00 2001 From: Rainy21 Date: Thu, 12 Mar 2026 17:32:40 -0400 Subject: [PATCH] add database and test that it work --- db/crud.py | 18 +++++++----------- main.py | 5 +++-- redis_client.py | 0 requirements.txt | 3 ++- server.log | 4 ++++ urls.db | Bin 0 -> 16384 bytes 6 files changed, 16 insertions(+), 14 deletions(-) create mode 100644 redis_client.py create mode 100644 server.log create mode 100644 urls.db diff --git a/db/crud.py b/db/crud.py index 214d65d..200b2eb 100644 --- a/db/crud.py +++ b/db/crud.py @@ -1,18 +1,14 @@ -from pydantic import Secret -import sqlalchemy.orm import Session +from sqlalchemy.orm import Session from . import models -def create_url(db:Session, short_code:str , long_url:str): - db_url = models.URL( - short_code=short_code, - long_url=long_url - ) + +def create_url(db: Session, short_code: str, long_url: str): + db_url = models.URL(short_code=short_code, long_url=long_url) db.add(db_url) db.commit() db.refresh(db_url) return db_url -def get_url(db:Session , short_code:str): - return db.query(models.URL).filter( - models.URL.short_code == short_code - ).first() + +def get_url(db: Session, short_code: str): + return db.query(models.URL).filter(models.URL.short_code == short_code).first() diff --git a/main.py b/main.py index 4ac2412..cadc3fb 100644 --- a/main.py +++ b/main.py @@ -9,7 +9,8 @@ import random from db.database import SessionLocal, engine from db import models, crud, schemas -models.Base.metadata.create_call(bind=engine) +models.Base.metadata.create_all(bind=engine) + app = FastAPI() @@ -41,4 +42,4 @@ def redirect_url(short_code: str, db: Session = Depends(get_db)): if not db_url: raise HTTPException(status_code=404, detail="URL not found") - return {"long_url": db_url.long_url} + return RedirectResponse(url=db_url.long_url) diff --git a/redis_client.py b/redis_client.py new file mode 100644 index 0000000..e69de29 diff --git a/requirements.txt b/requirements.txt index 89bae1f..f3770a4 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ fastapi uvicorn -sqlalchemy +sqlalchemy +redis diff --git a/server.log b/server.log new file mode 100644 index 0000000..34f3fe9 --- /dev/null +++ b/server.log @@ -0,0 +1,4 @@ +INFO: Started server process [60747] +INFO: Waiting for application startup. +INFO: Application startup complete. +INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) diff --git a/urls.db b/urls.db new file mode 100644 index 0000000000000000000000000000000000000000..62ee16f7ffb0394b623e5a5dc98eb94b6c75e96f GIT binary patch literal 16384 zcmeI$-*3`D00;1v+mDo}H8Eu2?R=9&+R_RPOpKK^lZ-Jzm@Zi)tnHujDtbg@tn9?sWdIKWzlMV%X&-aeRQu*<9_l?Y0 zcuxKZ2>UFEIyQ6Mcp$k6YS*ic_U*j+(0T5>Epz@rT;E8g#II7+JsMoc#gU1d$d>t{ zX5GvtDR~Z`Y|GlVnzX*xqV;yI_LwH6c^ut0o0XSlGj1I)zZWlevCR(LZsd0Oo_>q3 zyj9(`;*qbK)m^iBKzFQz>oq4c*L!pMjv#-RtGq&i00bZa0SG_<0uX=z1Rwwb2rRw8 zQ?e?gOJ>d7G5W{-C>n)jRh>*GN{_MLz*THE)HS`3)r@RTr+Tie70cSDvRN#aHjOt4 z{_zKMo9(y4`r^l-?I}kAV<&?%U$Mvjnc_NQ^-GVr(I?gRLfa_hG<7jpE9XmPy`*UQ zQqj;3MIQXw?E5E`hCT}(xNa05O2l(gM*-sp3d2yHu)xWVx>4i?zUsK49eAV2WB%>* zV%d12=y@$)C?xq`CGv$J|CBG}tEKfJH$70uX=z1Rwwb2tWV=5P$##{yTwHB8r5> K_e6paN%{?ci@@^$ literal 0 HcmV?d00001