-
[파이썬/Python] mysql connector 라이브러리로 MySql 연동하기개발지식 아카이브/Python 2019. 7. 24. 14:27
전제 조건
외장 라이브러리의 사전 설치를 요한다. 맥/리눅스 사용자는 콘솔에서 아래의 명령어로 바로 설치하는 것을 권장한다.
# MySql 8.0 이상 유저 pip install mysql-connector-python # 하위 버전 pip install mysql.connector
Pycharm의 경우 프로그램 안에서 라이브러리 설치도 지원한다.
Pycharm - Preference - Project: 프로젝트명 - Project Interpreter 으로 이동, 하단의 + 를 클릭하여 검색, 설치가 가능하다.
코드 전개
import mysql.connector #------------------------------------------------------# mysql_con = None #------------------------------------------------------# def query_executor(cursor, param1, param2): sql = "select * from food where name = %s or name = %s ;" cursor.execute(sql, (param1, param2)) #------------------------------------------------------# if __name__ == "__main__": try: mysql_con = mysql.connector.connect(host='localhost', port='3306', database='test', user='root', password='password') mysql_cursor = mysql_con.cursor(dictionary=True) query_executor(mysql_cursor, 'sushi', 'mcdonalds') for row in mysql_cursor: print('price is: '+str(row['price'])) mysql_cursor.close() except Exception as e: print(e.message) finally: if mysql_con is not None: mysql_con.close()
1. 호스트, 포트, 데이터베이스, 유저, 패스워드를 설정하여 mysql에 연결한다.
mysql_con = mysql.connector.connect(host='localhost', port='3306', database='test', user='root', password='password')
2. 쿼리를 실행할 함수를 커서에 올리고, 파라미터와 함께 실행한다. SQL Injection 공격에 대비하기 위하여 쿼리는 반드시 파라미터화 해주어야한다.
query_executor(mysql_cursor, 'sushi', 'mcdonalds')
참고로 파라미터를 1개만 사용할 경우는 syntax가 조금 다르므로 주의를 요한다. 파라미터 뒤에 콤마를 입력 하고 괄호를 닫아준다.
def query_executor(cursor, param): sql = "select * from food where name = %s ;" cursor.execute(sql, (param,))
3. mysql에서 쿼리를 실행한 output이 커서안에 들어온다. (mysql_cursor) for each문으로 output row들을 받아와서 print문으로 출력한다.
for row in mysql_cursor: print('price is: '+str(row['price']))
4. 커서를 닫고 종료한다.
'개발지식 아카이브 > Python' 카테고리의 다른 글
[파이썬] *args, **kwargs를 이용해 메소드 축약 작성하는 법 (0) 2019.09.24 [파이썬] 자료구조 Comprehension : 람다형 자료구조 코딩 (0) 2019.09.22 [파이썬 주식 분석] 매수 적정 PER 구하기 (당기순이익 증감 예상이용) (0) 2019.08.04 [파이썬/Python] 티켓팅 자동화 매크로 개발해보기 (30) 2019.07.01 [JSon] 파이썬에서 Json 형식 데이터 처리하기 (가져오기/내보내기/업데이트) (2) 2019.05.14