06eb3c57ab
- Chart.js - pdf, csv 파일 업로드 후 데이터 정제하여 llm으로 처리 후 결과 도출 - sqlite로 데이터 저장 - ORM - SQLAlchemy
106 lines
2.8 KiB
Plaintext
106 lines
2.8 KiB
Plaintext
{
|
|
"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\"<User(name='{self.name}', email='{self.email}')>\"\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
|
|
}
|