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 예외 처리 및 간편화 시킨 코드가 있으니 참고바람!:
반응형
'개발 > Python & Flask' 카테고리의 다른 글
logging에 필터추가하기! 초간단 예시 (0) | 2020.11.10 |
---|---|
Flask Python Threading 쓰레딩에 대해 알아보잣 (0) | 2020.11.10 |
Flask app.run() 파라미터 연구와 UnicodeDecodeError... (2) | 2020.11.10 |
Python Flask Logging 사용법!! - 서버관리 필수요소 (2) | 2020.11.10 |
Python Flask CSV 파일 다루기! 초간단 3줄 예시 (0) | 2020.11.10 |