728x90
1. DB 주소 확인
나는 vercel 이용하고 있어서 아래와 같이 확인했다.
https://vercel.com/
Dashboard
vercel.com


아래화면에서 "POSTGRES_URL_NON_POOLING" 주소로 확인.

2. .env 같은 설정 파일에서 위에서 확인한 데이터베이스 연결 정보 입력.
**이때, "postgres://" 라고 되어있다면 "postgresql://"로 바꿔준다.

3. 데이터베이스 연결
(ex) db.py) : Base를 생성, DB 세션관리 의존성 주입 함수 생성.
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from dotenv import load_dotenv
import os
# 환경 변수 로드
load_dotenv()
# DB 연결 URL 가져오기
DATABASE_URL = os.getenv("POSTGRES_URL_NON_POOLING")
# DB 엔진 생성 (연결 관리)
engine = create_engine(DATABASE_URL)
# DB 세션 설정
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
# 모델 클래스들이 상속받을 Base 클래스 생성
Base = declarative_base()
# DB 세션 가져오기 함수
def get_db():
db = SessionLocal()
try:
yield db
finally:
db.close()
4. DB 테이블 모델 정의
(ex) models/user.py)
from sqlalchemy import Column, Integer, String
from .db import Base
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True, index=True)
name = Column(String, index=True)
email = Column(String, unique=True, index=True)
password = Column(String)
5. API 엔드포인트
(ex) endpoints/user.py)
from fastapi import APIRouter, HTTPException, Depends
from sqlalchemy.orm import Session
from app.db import get_db # 데이터베이스 연결
from pydantic import BaseModel
from app.models.user import User # SQLAlchemy 모델
router = APIRouter()
@router.get("/users/{user_id}", response_model=UserResponse)
def get_user(user_id: int, db: Session = Depends(get_db)):
user = get_user(db, user_id)
return user
user = get_user(db, user_id)
return user
6. 서버 실행.
uvicorn <main함수> --reload
EX))
uvicorn app.main:app --reload

7. swagger로 확인

728x90
'IT기타' 카테고리의 다른 글
DB 스키마와 데이터 백업/복원 (0) | 2025.02.06 |
---|---|
맥북(MacBook, 맥 노트북) 처음일 때, 10초만에 적응하기. (0) | 2025.02.05 |
Supabase에서 데이터베이스 비밀번호 변경 (0) | 2025.02.04 |
태블릿(모바일)용 크롬 확장프로그램 개발 : 터치펜 입력 감지 (0) | 2025.01.30 |
태블릿(모바일)용 크롬 확장프로그램 개발(스크롤, touch처리, html5, canvas) (0) | 2025.01.25 |