-
Python, SQLite, SQLAlchemy, Database 조작Python 2024. 6. 27. 18:45
SQLite
Python에는 기본적으로 SQLite가 내장되어 있으므로 별도 설치 없이 VScode에서 파일이름.db 형식으로 파일을 만들기만 하면 손쉽게 사용할 수 있다.
(venv 라이브러리 이용)
터미널, 설치
pip install Flask-SQLAlchemy
app.py에 Flask와 Database를 연결하는 코드 입력
from flask import Flask import os from flask_sqlalchemy import SQLAlchemy basedir = os.path.abspath(os.path.dirname(__file__)) app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] =\ 'sqlite:///' + os.path.join(basedir, 'database.db') db = SQLAlchemy(app)
그리고 바로 아래에 불러올 데이터베이스 코드 입력
엑셀처럼 설계도라고 볼 수 있음
id = db.Column(db.Integer, primary_key=True)이게 각 컬럼에 해당하는 코드
class Song(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String, nullable=False) artist = db.Column(db.String, nullable=False) title = db.Column(db.String, nullable=False) image_url = db.Column(db.String, nullable=False) def __repr__(self): return f'{self.artist} {self.title} 추천 by {self.username}' with app.app_context(): db.create_all()
터미널, 아래 코드 입력 후 enter
flask shell
>>> from app import db, Song
>>> db.create_all()
그런 다음 database.db file에 들어가보면
이렇게 데이터베이스를 입력할 수 있게 된다.
이제,
터미넬에서 아래 두 코드 입력 된 상태에서
>>> from app import db, Song >>> db.create_all()
아래와 같이 데이터를 넣으면 입력이 된다.
song1 = Song(username="추천자", title="노래제목1", artist="가수1", image_url="이미지 주소1") song2 = Song(username="스파르타", title="노래제목2", artist="가수2", image_url="이미지 주소2") song3 = Song(username="스파르타", title="노래제목3", artist="가수3", image_url="이미지 주소3") db.session.add(song1) db.session.add(song2) db.session.add(song3) db.session.commit() #데이터를 한번에 저장
add 는 데이터 업로드
commit 은 데이터 저장
데이터 조회는
모든 데이터를 다 조회하려면
Song.query.all()
그럼 이렇게 리스트 형태로 출력됨
[가수 노래제목 추천 by 추천자, 가수 노래제목 추천 by 추천자, 가수1 노래제목1 추천 by 추천자, 가수2 노래제목2 추천 by 스파르타, 가수3 노래제목3 추천 by 스파르타]
song_list = Song.query.all() #list형태이기 때문에 이렇게 해주고 song_list[0] #이렇게 원하는 데이터의 인덱스값을 넣어주면 원하는 데이터만 출력가능
데이터 수정
song_data = Song.query.filter_by(id=4).first() song_data.title = '변경된제목' db.session.add(song_data) #업로드 db.session.commit() #저장
데이터 삭제
delete_data = Song.query.filter_by(id=4).first() db.session.delete(delete_data) db.session.commit()
코드 요약
# 데이터를 DB에 저장하기 song = Song(username="추천자", title="노래제목", artist="가수", image_url="이미지 주소") db.session.add(song) db.session.commit() # 모든 데이터 조회하기 song_list = Song.query.all() # 데이터 1개 가져오기 Song.query.filter_by(id=3).first() # 데이터 변경하기 song_data = Song.query.filter_by(id=4).first() song_data.title = '변경된제목' db.session.add(song_data) db.session.commit() # 데이터 삭제하기 delete_data = Song.query.filter_by(id=4).first() db.session.delete(delete_data) db.session.commit()
'Python' 카테고리의 다른 글
파이썬으로 업다운 게임 만들기 (0) 2024.07.02 파이썬 문법 심화 (1) 2024.06.30 파이썬 문법 기초 (0) 2024.06.28 Flask로 사이트 만들기 (python, html) (0) 2024.06.27 python 문법, 패키지 라이브러리, 웹 스크래핑(크롤링) (2) 2024.06.27