SQLAlchemy
SQLAlchemy에서 모든 데이터를 조회하고 화면에 출력하는 방법은 다음과 같이 할 수 있습니다. 아래 예시 코드에서는 SQLAlchemy를 사용하여 데이터베이스에 연결하고, 특정 테이블의 모든 데이터를 조회하고 결과를 화면에 출력하는 방법을 보여드리겠습니다.
먼저, `sqlalchemy` 라이브러리를 설치해야 합니다:
```bash
pip install sqlalchemy
```
그리고 다음과 같이 SQLAlchemy를 사용하여 모든 데이터를 조회하고 화면에 출력하는 코드를 작성합니다:
```python
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# 데이터베이스 연결 정보 설정
DB_URL = "mysql+mysqlconnector://username:password@localhost/database_name"
# SQLAlchemy 엔진 생성
engine = create_engine(DB_URL)
# 세션 생성
Session = sessionmaker(bind=engine)
session = Session()
# Base 클래스 정의
Base = declarative_base()
# 데이터베이스 모델 정의
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
username = Column(String(50))
email = Column(String(100))
# 모든 데이터 조회 함수
def select_all_data():
# 모든 데이터 조회
all_data = session.query(User).all()
return all_data
if __name__ == "__main__":
# 테이블 생성
Base.metadata.create_all(engine)
# 데이터 추가 (예시로 몇 개의 데이터 추가)
new_user1 = User(username='john_doe', email='john@example.com')
new_user2 = User(username='jane_smith', email='jane@example.com')
session.add_all([new_user1, new_user2])
session.commit()
# 모든 데이터 조회 및 화면에 출력
all_data = select_all_data()
for user in all_data:
print(f"ID: {user.id}, Username: {user.username}, Email: {user.email}")
```
위의 예시 코드에서 `select_all_data()` 함수를 사용하여 데이터베이스에 있는 `users` 테이블의 모든 데이터를 조회하고, 각 사용자의 ID, 사용자명, 이메일 정보를 화면에 출력합니다.
코드를 실행하면 `users` 테이블에 있는 모든 데이터가 출력될 것입니다. 실제 사용하시는 데이터베이스와 테이블의 구조에 맞게 코드를 조정하시기 바랍니다.
from sqlalchemy import create_engine, Column, Integer, String, ForeignKey
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
# MariaDB 연결 정보 설정
# DB_URL = "mysql+mysqlconnector://root:Rlatkdrl1@@localhost/kimsangki"
import urllib.parse
# DB_URL에 이스케이프 처리 적용
DB_URL = "mysql+mysqlconnector://root:" + urllib.parse.quote("abcdefg@") + "@localhost/kimsangki"
# SQLAlchemy 엔진 생성
engine = create_engine(DB_URL)
# 세션 생성
Session = sessionmaker(bind=engine)
session = Session()
# Base 클래스 정의
# Base = declarative_base()
Base = sqlalchemy.orm.declarative_base()
# User 모델 정의
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
username = Column(String(50), unique=True)
email = Column(String(100), unique=True)
# 테이블 생성
Base.metadata.create_all(engine)
# 사용자 생성
def create_user(username, email):
new_user = User(username=username, email=email)
session.add(new_user)
session.commit()
print(f"User '{username}' created.")
# 사용자 추가
def add_user(username, email):
# existing_user = session.query(User).filter_by(username=username).first()
# if existing_user:
# print(f"User '{username}' already exists.")
# else:
# create_user(username, email)
create_user(username, email)
# 사용자 삭제
def delete_user(username):
user_to_delete = session.query(User).filter_by(username=username).first()
if user_to_delete:
session.delete(user_to_delete)
session.commit()
print(f"User '{username}' deleted.")
else:
print(f"User '{username}' not found.")
# 모든 데이터 조회 함수
def select_all_data():
# 모든 데이터 조회
all_data = session.query(User).all()
return all_data
all_data = select_all_data()
for user in all_data:
print(f"ID: {user.id}, Username: {user.username}, Email: {user.email}")
# 사용자 생성
# create_user("john_doe1", "john@example.com")
# 사용자 추가
# add_user("jane_smith", "jane@example.com")
# 사용자 삭제
# delete_user("john_doe")