Python의 DB 연결하는 코드를 지속적으로 만들다 보니 나의 블로그나 깃허브에 샘플 코드를 만들어두면 참고가 될 것 같아서 만들어둡니다.
파이썬의 디비 설정
python 의 configparser를 이용하여 config인 ini파일 등을 읽을 수 있습니다. 개발을 하다 보면 똑같은 설정이지만 환경에 따라서 변경을 해야 한다면 이 설정이 있으면 좋을 것 같습니다. 아래와 같이 ini 파일을 구성합니다.
[LOCAL]
HOST = 127.0.0.1
DATABASE_NAME = test_tb
USER = test
PASSWORD = db_tester_1234
PORT = 3306
CHARSET = utf-8
파이썬의 디비 연결 커넥터
python 3의 모듈중 하나인 pymysql을 설치합니다. 중간에 설치 시 실패할 경우 설치된 pip가 python2가 아닌 python3 인지 버전을 확인하고 사용하세요. 정확하게 모르시겠다면 pip3명령어를 사용하시기를 바랍니다. 아래와 같이 나온다면 이미 설치된 내용이니 패스하시면 됩니다.
$ pip3 install pymysql
Requirement already satisfied: pymysql in /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages (1.0.2)
연결을 위한 모듈까지 모두 설치 완료하였다면 이제 연결할 준비는 모두 끝났습니다. 다만, mysql에서 remote로 연결이 가능하도록 허용하였는지는 확인을 하시기를 바랍니다.
자 이제 연결을 위해서 코드를 작성해볼까요. DB_TEST 클래스를 만들어 봅시다.
import sys
import pymysql
import configparser
class DB_TEST :
sample_query = """
select column_list1
from table_name
where condition1
"""
def __init__(self):
config = configparser.ConfigParser()
config.read('./dbconfig/dbinfo.ini')
self.host = config['DEV']['HOST']
self.database_name = config['DEV']['DATABASE_NAME']
self.user = config['DEV']['USER']
self.password = config['DEV']['PASSWORD']
self.charset = config['DEV']['CHARSET']
def get_connection(self):
self.conn = pymysql.connect(host=self.host,
user=self.user,
password=self.password,
db=self.database_name
)
return self.conn
def do_something(self):
try:
self.conn = self.get_connection()
cur = self.conn.cursor()
sql = self.sample_query
query_param = "sample"
vals = (query_param,)
cur.execute(sql, vals)
#한 줄 출력
row = cur.fetchone()
if row == None:
print('검색결과없음')
else:
for row in cur:
#print(row)
print('row[0] : ' , row[0])
self.conn.close()
except Exception as e:
print('do_something is occured Exception : ' , e )
여기서 중요한 점은 파이썬에서 쿼리와 같은 문자열의 포멧을 보려면 아래와 같이 만들어 두는 것이 좋다. 보통 다른 언어를 공부하시던 분들이 하시던 대로 쓰면 아래와 같은 에러를 만나게 된다.
IndentationError: unexpected indent 오류 해결
저도 처음에 이 에러를 만났을 때 아래 샘플 예제처럼 사용하였는데요. 이제보니 좀 창피하네요.
sample_query = "select column1, column2 "
+"from test_table "
+"where condition1 "
파이썬에서 위와 같은 오류를 만났을 땐 아래와 같이 변수를 변경해주는 것을 추천합니다.
"""
select column
from table
where condition
"""
혹은
(
"select column "
"from table "
"where condition "
)
혹은
"select column " \
"from table " \
"where condition "
혹시 틀린 내용이 있거나 오탈자가 있다면 댓글 부탁 드립니다. 모두에게 도움 되는 글이었으면 좋겠습니다. 감사합니다.
'개발자의삶 > python' 카테고리의 다른 글
Python3 - Graphical Logging 을 해보자 (0) | 2022.04.02 |
---|---|
Pymysql 을 이용한 where절 in 의 파라미터 전달 법 (0) | 2022.03.22 |
댓글