반응형
이번 시간은 파이썬을 이용하여 mysql 데이터베이스를 다루는 방법에 대해 알아보자.
파이썬에는 mysql DB를 컨트롤할수 있는 여러가지 라이브러리 들이 존재하지만, 개인적으로 가장 선호하는 pymysql 에 대해 소개해 보려한다.
목차
- 패키지 로딩방법
- 사용방법
- 활용함수
1. 패키지 로딩방법
pip 를 이용하여 pymysql 패키지를 설치한다.
터미널 창에서
$pip install pymysql
위 명령어를 입력하면 자동으로 설치가 된다.
설치 완료후
import pymysql
위와 같이 requests 패키지를 import 하면, 바로 mysql을 접속할수 있는 준비가 끝나게 된다.
2. 사용방법
pymysql의 사용방법은 아주 간단하다.
- mysql 접속 connect()
pymysql.connect(host, port, user, passwd, db)
connect 함수에 DB접속정보를 넣으면 바로 연결이 된다.
conn = pymysql.connect(host, port=3306, user=db_user, passwd=password, db=db_name, autocommit=True, charset='utf8')
cur = conn.cursor(pymysql.cursors.DictCursor) # 반환데이터에 컬럼값이 키가 되도록 세팅
cur = conn.cursor()# 반환데이터에 인덱스가 키가 되도록 세팅
cursor() 함수로 반환데이터의 타입을 결정한다.
- 쿼리 실행 execute()
위에서 만든 cur을 이용하여, 쿼리를 실행할 수 있다.
cur.execute("SELECT * FROM user")
- 데이터 가져오기 fetch
쿼리 실행후 결과 데이터를 가져올때에는 fetchone() 와 fetchall()을 사용할 수 있다.
fetchone() - 결과로부터 데이터 1줄(row)를 반환
fetchall() - 모든데이터를 반환
rows = cur.fetchall() # 전체 가져오기
row = cur.fetchone() # 한줄 가져오기
print("rows :" rows)
print("row :" row)
3. 활용함수
DB 접속은 자주 사용하는 기능이니, 간단하게 클래스로 구현하여 사용하는것을 추천한다.
dbconn.py
# -*- coding: utf-8 -*-
import pymysql
class dbconn:
def __init__(self, host, user, passwd, db, cs='utf8'):
self.db_host = host
self.db_user = user
self.db_password = passwd
self.db_name = db
self.db_charset = cs
self.conn = pymysql.connect(host=self.db_host, port=3306, user=self.db_user, passwd=self.db_password, db=self.db_name, autocommit=True, charset=self.db_charset)
def sql_exec(self, qry, _type):
cur = self.conn.cursor(pymysql.cursors.DictCursor)
cur.execute(qry)
if(_type=="S"):
rows = cur.fetchall()
return rows
클래스 사용방법
import dbconn as db
dbconn = db.dbconn("172.16.38.xxx", "user", "password", "dbname")
qry = "SELECT * FROM user"
tmp = dbconn.sql_exec(qry, 'S')
qry = "UPDATE user SET id='aaa' WHERE seq=1 "
dbconn.sql_exec(qry, 'U')
반응형
'PYTHON' 카테고리의 다른 글
파이썬[python] sort() 함수의 다양한 사용법 알아보기 (0) | 2023.05.26 |
---|---|
파이썬[python] requests 패키지 알아보기 (0) | 2022.08.21 |
파이썬[python] 내림 모듈(math.floor) 알아보기 (0) | 2022.08.20 |
파이썬[python] 콤비네이션 모듈(combinations) 알아보기 (0) | 2022.08.19 |
파이썬[python] pip를 이용하여 패키지 특정 버전 설치 (0) | 2022.08.18 |