본문 바로가기

개발/Python & Flask

pymysql 사용법 및 초간단 예시!

python 과 mysql 을 연결시키는 라이브러리는 2가지가 있다.
pymysql 과 mysqlclient 인데,

둘의 문법과 생김세는 매우 유사하니, 딱 한가지 다른 점은

pymysql 은 python 으로 작성되었고, mysqlclient 는 C로 쓰였다.
그래서 mysqlclient 가 속도적으로 우세하다. Mac 에서는 호환이 안된다는 단점이있다.

 

다음은 초간단 pymysql 사용 템플릿이다.

conn = pymysql.connect (
	user = 'root'
	password = '12345',
	host = 'localhost'.
	db = 'test'
	charset = 'utf8'
)

cursor = conn.cursor

cursor.execute("select * from table 123 where id = %s or name = %s", (id, name))

list = cursor.fetchall() || conn.commit() #이렇게 갈린다.

for i, p in enumerate(list):
	word = "성 : {5} | 이름 (5) | 나이 (5)\n".format(p[1], p[2], p[3])

cursor.close()
conn.close()

1 conn 은 연결을 설정해준다.

2 cursor 라는 객체를 생성 해줘야한다.

3 cursor.execute( sql 문 ) 이 입력된다.

  %s 를 사용하는 것은 SQL 인젝션을 방지하기 위함이다.

  이스케이핑 기능이라고 하는데, 이스케이핑이란 해당 문자의 앞뒤를 감싸서 해킹을 방지하는 것을 말한다.

4 execute 문 이후로 select문과 그 외 update, delete, insert 문이 필요한 구문이 갈린다.

   select 문의 결과는 데이터를 받아오는 것이죠?

   list = cursor.fetchcall() 혹은 fetchone() 으로 데이터를 받아온다.

   * 참고로 fetchall()[0] 과 fetchone() 은 같은 결과를 준다!

 

5 insert, delete, update는 데이터베이스에 영향을 주는 작업이다.

   conn.commit() 를 통해 반영해준다.

   * cursor.commit ()이 아니야 ! conn이라구

 

6 cursor를 닫아주고, conn 까지 닫아주며 종료된다.

 

 

다음글은 pymysql 예외 처리 및 간편화 시킨 코드가 있으니 참고바람!:

 

반응형