Python
-
SQLAlchemy 1.3 vs 2.0 차이점Python/Today 2025. 8. 25. 09:22
✅ SQLAlchemy 1.3 vs 2.0 차이점 구분 1.3 버전 (기존) 2.0 버전 (신규)ORM 선언Column, relationship을 직접 클래스 속성에 할당Mapped, mapped_column()을 활용해 타입 힌트 기반 선언세션 관리Session = sessionmaker(bind=engine) 후 session = Session()with Session(engine) as session: 같은 컨텍스트 매니저 사용 권장쿼리 APIsession.query(User).filter(User.name=="a")session.execute(select(User).where(User.name=="a"))쿼리 반환값ORM 객체 리스트 바로 반환Result 객체 반환 → .scalars().all..
-
SQLAlchemy ORM 특징Python/Today 2025. 8. 22. 09:30
구분 설명ORM(Object Relational Mapping)파이썬 객체와 데이터베이스 테이블을 매핑하여 SQL 대신 객체 지향적으로 DB 조작 가능데이터베이스 독립성SQLite, PostgreSQL, MySQL, Oracle 등 다양한 DB 엔진을 지원하며 코드 변경 최소화세션(Session) 기반 관리DB 연결, 트랜잭션, 객체 상태(Transient, Pending, Persistent, Detached)를 세션에서 관리쿼리 빌더(Query Builder)스타일: 2.0 권장 스타일 사용 — select()/insert()/update()/delete() + session.execute(stmt) (과거 session.query()는 레거시).표현식 구성: 컬럼·연산자·함수를 조합해 SQL을 파이..
-
python 정리 #3(app/crud/user_crud.py)Python/Today 2025. 7. 8. 13:41
# SQLAlchemy Session 타입 임포트from sqlalchemy.orm import Session# User ORM 모델 임포트from db.another_db.models import User# 회원가입 요청 검증용 Pydantic 모델 임포트from schemas.requests.user_create import UserCreate# ─────────────────────────────────────────────────────────────# 신규 사용자 생성 함수 (CRUD)# ─────────────────────────────────────────────────────────────def create_user( db: Session, # SQLAlchemy ..
-
python 정리 #2(routers/router.py)Python/Today 2025. 7. 8. 10:50
# FastAPI의 APIRouter 클래스 임포트from fastapi import APIRouter# 웹 관련 라우트 모듈 전체 임포트from .routes.web import *# 웹 모듈 중 user 서브모듈만 별칭(web_user)으로 임포트from .routes.web import user as web_user# ─────────────────────────────────────────────────────────────────────────────# 메인 API 라우터 인스턴스 생성# ─────────────────────────────────────────────────────────────────────────────api_router = APIRouter()# ──────────────..
-
python 정리 #1(routers/user.py)Python/Today 2025. 7. 8. 10:48
# FastAPI, 의존성 주입, HTTP 예외 처리용 클래스 임포트from fastapi import APIRouter, Depends, HTTPException# SQLAlchemy 세션 타입 임포트from sqlalchemy.orm import Session# DB 세션 제공 함수(get_db) 임포트from db.another_db.mariaDB import get_db# 요청 본문 검증용 Pydantic 모델(UserCreate) 임포트from schemas.requests.user_create import UserCreate# 실제 사용자 생성 로직(create_user) 임포트from crud.user.user_crud import create_user# ────────────────────..