fastAPI 심화
- Chart.js - pdf, csv 파일 업로드 후 데이터 정제하여 llm으로 처리 후 결과 도출 - sqlite로 데이터 저장 - ORM - SQLAlchemy
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
{
|
||||
"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
|
||||
}
|
||||
Reference in New Issue
Block a user