250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- remove()
- items()
- locals()
- count()
- 파이썬
- JS
- shuffle()
- __sub__
- HTML
- discard()
- Database
- __annotations__
- fileinput
- node.js
- choice()
- decode()
- __len__
- inplace()
- 오버라이딩
- CSS
- zipfile
- shutil
- MySQL
- View
- mro()
- fnmatch
- glob
- MySqlDB
- randrange()
- __getitem__
Archives
- Today
- Total
흰둥이는 코드를 짤 때 짖어 (왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!)
(파이썬) MySQL을 이용한 단어장 만들기 본문
728x90
반응형
In [1]:
class Words:
def __init__(self, eng, kor, lev=1):
self.eng = eng
self.kor = kor
self.lev = lev
def setEng(self, eng):
self.eng = eng
def getEng(self):
return self.eng
def setKor(self, kor):
self.kor = kor
def getKor(self):
return self.kor
def setLev(self, lev):
self.lev = lev
def getLev(self):
return self.lev
In [2]:
import MySQLdb
class WordsDao:
def __init__(self):
self.db = None
def connect(self):
self.db = MySQLdb.connect('localhost', 'root', '1234', 'kdt')
def disconnect(self):
self.db.close()
def insert(self, word):
self.connect()
cur = self.db.cursor()
sql = "insert into words values (%s, %s, %s)"
data = (word.getEng(), word.getKor(), word.getLev())
cur.execute(sql, data)
self.db.commit()
self.disconnect()
def selectAll(self):
self.connect()
cur = self.db.cursor()
sql = 'select eng, kor, lev from words'
cur.execute(sql)
row = cur.fetchall()
self.disconnect()
return row
def search(self, eng):
self.connect()
cur = self.db.cursor()
sql = 'select eng, kor, lev from words where eng=%s'
data = (eng,)
cur.execute(sql, data)
row = cur.fetchone()
self.disconnect()
return row
def update(self, word):
self.connect()
cur = self.db.cursor()
sql = 'update words set kor=%s, lev=%s where eng=%s'
data = (word.getKor(), word.getLev(), word.getEng())
result = cur.execute(sql, data)
self.db.commit()
if result > 0:
print('수정되었습니다')
else:
print('해당 단어가 없습니다')
self.disconnect()
def delete(self, eng):
self.connect()
cur = self.db.cursor()
sql = 'delete from words where eng=%s'
data = (eng,)
result = cur.execute(sql, data)
self.db.commit()
if result > 0:
print('삭제되었습니다')
else:
print('해당 단어가 없습니다')
self.disconnect()
In [3]:
class WordsService:
def __init__(self):
self.dao = WordsDao()
def insertWord(self):
eng = input('단어를 입력하세요')
kor = input('뜻을 입력하세요')
lev = input('레벨을 입력하세요')
word = Words(eng, kor, lev)
self.dao.insert(word)
def printAll(self):
datas = self.dao.selectAll()
print(datas)
def searchWord(self):
eng = input('검색할 단어를 입력하세요')
word = self.dao.search(eng)
if word:
print(word)
else:
print('찾는 단어가 없습니다')
def editWord(self):
eng = input('수정할 단어를 입력하세요')
word = self.dao.search(eng)
if word == None:
print('수정할 단어를 찾지 못했습니다')
else:
kor = input('새로운 뜻을 입력하세요')
lev = input('새로운 레벨을 입력하세요')
word = Words(eng, kor, lev)
self.dao.update(word)
def delWord(self):
eng = input('삭제할 단어를 입력하세요')
self.dao.delete(eng)
In [4]:
class Menu:
def __init__(self):
self.service = WordsService()
def run(self):
while True:
try:
menu = int(input('1.등록하기 2.출력하기 3.검색하기 4.수정하기 5.삭제하기 6.종료하기'))
if menu == 1:
self.service.insertWord()
elif menu == 2:
self.service.printAll()
elif menu == 3:
self.service.searchWord()
elif menu == 4:
self.service.editWord()
elif menu == 5:
self.service.delWord()
elif menu == 6:
break
except Exception as e:
print(e)
print('다시 입력하세요')
In [5]:
start = Menu()
start.run()
1.등록하기 2.출력하기 3.검색하기 4.수정하기 5.삭제하기 6.종료하기2
(('banana', '바나나', '1'),)
1.등록하기 2.출력하기 3.검색하기 4.수정하기 5.삭제하기 6.종료하기6
728x90
반응형
'파이썬 기초' 카테고리의 다른 글
(파이썬) 재귀 함수 (0) | 2023.04.13 |
---|---|
(파이썬) 파이썬과 MySQL 연동 (0) | 2023.03.22 |
(파이썬) DAO, DTO, VO 와 MVC 패턴 (0) | 2023.03.21 |
(파이썬) 폴더 관리 프로그램 실습 (0) | 2023.03.14 |
(파이썬) 파일 입출력 라이브러리 (0) | 2023.03.14 |