{ "cells": [ { "metadata": {}, "cell_type": "markdown", "source": [ "### ORM(Object Relational Mapping)\n", "- 데이터베이스 테이블을 파이썬의 클래스로 매핑\n", "- 컬럼 == 속성\n", "- SQLALchemy 라이브러리가 ORM 지원" ], "id": "11f3431eb6bf7a12" }, { "cell_type": "code", "id": "initial_id", "metadata": { "collapsed": true, "ExecuteTime": { "end_time": "2026-06-16T08:48:53.375278031Z", "start_time": "2026-06-16T08:48:51.509377417Z" } }, "source": "!pip install sqlalchemy", "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: sqlalchemy in ./.venv/lib/python3.12/site-packages (2.0.51)\n", "Requirement already satisfied: greenlet>=1 in ./.venv/lib/python3.12/site-packages (from sqlalchemy) (3.5.1)\n", "Requirement already satisfied: typing-extensions>=4.6.0 in ./.venv/lib/python3.12/site-packages (from sqlalchemy) (4.15.0)\n" ] } ], "execution_count": 1 }, { "metadata": { "ExecuteTime": { "end_time": "2026-06-16T08:57:27.860045705Z", "start_time": "2026-06-16T08:57:27.561065535Z" } }, "cell_type": "code", "source": [ "# Users 테이블 (id, name, email)\n", "# create table users()\n", "from sqlalchemy import Column, Integer, String, create_engine\n", "from sqlalchemy.orm import declarative_base, sessionmaker\n", "\n", "# 데이터베이스 연결\n", "engine = create_engine('sqlite:///db/users.db')\n", "# engine = create_engine('sqlite:///users.db')\n", "\n", "# 모든 모델 크래스의 부모 클래스가 될 Base 객체 생성\n", "Base = declarative_base()\n", "class User(Base):\n", " __tablename__ = 'users'\n", "\n", " id = Column(Integer, primary_key=True)\n", " name = Column(String)\n", " email = Column(String, unique=True)\n", "\n", " def __str__(self):\n", " return f\"\"\n", "\n", "# 테이블 생성\n", "Base.metadata.create_all(engine)" ], "id": "7a41f863de1efd48", "outputs": [], "execution_count": 2 }, { "metadata": {}, "cell_type": "code", "outputs": [], "execution_count": null, "source": "", "id": "de1ebcd8f162fd42" } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 2 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython2", "version": "2.7.6" } }, "nbformat": 4, "nbformat_minor": 5 }