반응형
python에서 mysql 이용하기!!
- 필요한 모듈을 설치한다.
pip install pymysql
In [1]:
pip install pymysql
Collecting pymysql
Downloading PyMySQL-1.0.2-py3-none-any.whl (43 kB)
Installing collected packages: pymysql
Successfully installed pymysql-1.0.2
Note: you may need to restart the kernel to use updated packages.
프로그래밍 순서!!
- DB 모듈 import
- DB접속 - 접속객체 얻어오기.
- 쿼리작성
- 쿼리실행
- 결과값을 얻어오기
- 접속종료!!
In [23]:
#1. 필요한 모듈 import
import pymysql
#2. 접속
conn = pymysql.connect(host='localhost',port=3306,user='aiuser',password='aipw',db='5')
conn
Out[23]:
<pymysql.connections.Connection at 0x1cc77a70850>
In [24]:
#3. 쿼리 작성 cursor 객체를 이용한다.
sql = "select * from todos"
#쿼리실행
#Connection 객체로 부터 커서객체얻어오기.
cur = conn.cursor()
#4. 쿼리실행은 Cursor 객체가 한다.
cur.execute(sql)
# 5결과값 얻어오기.
for row in cur:
print(row)
(3, '파이썬 공부하기', datetime.datetime(2022, 5, 25, 11, 32, 10), None)
(4, '파이썬 공부하기', datetime.datetime(2022, 5, 25, 11, 45, 31), None)
(6, '점심메뉴 생각하기', datetime.datetime(2022, 5, 25, 12, 27, 1), None)
(7, '봄봄이랑 놀아주기!!', datetime.datetime(2022, 5, 25, 12, 36, 34), None)
(8, '커피마시기', datetime.datetime(2022, 5, 25, 12, 37, 40), None)
In [16]:
rows = cur.fetchall()
print(type(rows))
for row in rows:
print(row)
<class 'tuple'>
(3, '파이썬 공부하기', datetime.datetime(2022, 5, 25, 11, 32, 10), None)
(4, '파이썬 공부하기', datetime.datetime(2022, 5, 25, 11, 45, 31), None)
In [17]:
#6. DB에 작업이 끝나면 접속을 종료한다.!!
cur.close()
conn.close()
In [19]:
# todo에 입력!!
#1.접속
conn = pymysql.connect(host='localhost',port=3306,user='aiuser',password='aipw',db='aidb')
#2.쿼리작성
sql = 'insert into todos (todo) values ("점심메뉴 생각하기")'
#3.쿼리실행
cur = conn.cursor()
result = cur.execute(sql)
#4.결과얻어오기
print(result)
#5.접속종료.
conn.commit()
cur.close()
conn.close()
1
In [35]:
class Todo:
def __init__(self, todo,no=None, createDate=None,endDate=None):
self.no = no
self.todo = todo
self.createDate = createDate
self.endDate = endDate
def showTodoInfo(self):
print('번호:' , self.no)
print('할일:' , self.todo)
print('할일등록일:' , self.createDate)
print('할일완료일:' , self.endDate)
print()
In [40]:
def find_todo(no):
conn = pymysql.connect(host='localhost',port=3306,user='aiuser',password='aipw',db='aidb')
#2.쿼리작성
sql = 'select * from todos where no = %s'
#3.쿼리실행
cur = conn.cursor()
cur.execute(sql,no)
#4.결과얻어오기
row = cur.fetchone()
#5.접속종료.
cur.close()
conn.close()
if row != None:
todo = Todo(row[1],row[0],row[2],row[3])
return todo
In [45]:
t = find_todo(6)
t.showTodoInfo()
t.no
print(t.createDate)
번호: 6
할일: 점심메뉴 생각하기
할일등록일: 2022-05-25 12:27:01
할일완료일: None
2022-05-25 12:27:01
In [46]:
def get_todos():
conn = pymysql.connect(host='localhost',port=3306,user='aiuser',password='aipw',db='aidb')
#2.쿼리작성
sql = 'select * from todos'
#3.쿼리실행
cur = conn.cursor()
cur.execute(sql)
#4.결과얻어오기
rows = cur.fetchall()
#5.접속종료.
cur.close()
conn.close()
todos = []
for row in rows:
todo = Todo(row[1],row[0],row[2],row[3])
todos.append(todo)
return todos
In [47]:
todo_list = get_todos()
for todo in todo_list:
todo.showTodoInfo()
번호: 3
할일: 파이썬 공부하기
할일등록일: 2022-05-25 11:32:10
할일완료일: None
번호: 4
할일: 파이썬 공부하기
할일등록일: 2022-05-25 11:45:31
할일완료일: None
번호: 6
할일: 점심메뉴 생각하기
할일등록일: 2022-05-25 12:27:01
할일완료일: None
번호: 7
할일: 봄봄이랑 놀아주기!!
할일등록일: 2022-05-25 12:36:34
할일완료일: None
번호: 8
할일: 커피마시기
할일등록일: 2022-05-25 12:37:40
할일완료일: None
번호: 9
할일: 물마시기
할일등록일: 2022-05-25 14:17:03
할일완료일: None
In [20]:
def add_todo(todo):
# todo에 입력!!
#1.접속
conn = pymysql.connect(host='localhost',port=3306,user='aiuser',password='aipw',db='aidb')
#2.쿼리작성
sql = 'insert into todos (todo) values (%s)'
#3.쿼리실행
cur = conn.cursor()
result = cur.execute(sql,todo)
#4.결과얻어오기
# print(result)
#5.접속종료.
conn.commit()
cur.close()
conn.close()
add_todo('봄봄이랑 놀아주기!!')
1
In [21]:
add_todo('커피마시기')
1
In [25]:
add_todo('물마시기')
1
'경기도 인공지능 개발 과정 > Python' 카테고리의 다른 글
Python 초보자를 위한 파이썬 300제 (201 ~ 300) (0) | 2022.05.28 |
---|---|
Python 파이썬으로 TODOLIST 만들어보기 (0) | 2022.05.28 |
Python 예외처리 (0) | 2022.05.28 |
Python 클래스와 객체 (0) | 2022.05.28 |
Python 파일 입출력 (0) | 2022.05.28 |