전제 조건
외장 라이브러리의 사전 설치를 요한다. 맥/리눅스 사용자는 콘솔에서 아래의 명령어로 바로 설치하는 것을 권장한다.
# MySql 8.0 이상 유저
pip install mysql-connector-python
# 하위 버전
pip install mysql.connector
Pycharm의 경우 프로그램 안에서 라이브러리 설치도 지원한다.
Pycharm - Preference - Project: 프로젝트명 - Project Interpreter 으로 이동, 하단의 + 를 클릭하여 검색, 설치가 가능하다.
코드 전개
python으로 접근할 mySql table
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']))
'☆IT 개발 프로그램☆ > Phthon' 카테고리의 다른 글
[JSon] 파이썬에서 Json 형식 데이터 처리하기 (가져오기/내보내기/업데이트) (0) | 2020.06.04 |
---|---|
[파이썬/Python] 티켓팅 자동화 매크로 개발해보기 (0) | 2020.06.04 |
[파이썬 주식 분석] 매수 적정 PER 구하기 (당기순이익 증감 예상이용) (0) | 2020.06.04 |
[파이썬] 자료구조 Comprehension : 람다형 자료구조 코딩 (0) | 2020.06.04 |
[파이썬] *args, **kwargs를 이용해 메소드 축약 작성하는 법 (0) | 2020.06.04 |