Django에서 MySQL 모듈 사용하기

박도준·2020년 7월 22일
1

Django+AWS+MySQL

목록 보기
5/6
post-thumbnail

1. MySQL DB 모듈

Python에서 MySQL 데이터베이스를 사용하기 위해서는 우선 Python DB API에 따르는 MySQL DB 모듈을 다운받아 설치한다.

저는 Mysqlclient를 설치했습니다.(앞 블로그의 에러 1 부분 참고)


2. MySQL 사용

  1. PyMySQL 모듈을 import한다.

  2. pymysql.connect() 메소드를 사용하여 MySQL에 connect 한다. 호스트명, 로그인, 암호, 접속할 DB 등을 파라미터로 지정한다.

  3. DB 접속이 성공하면, connection 객체로부터 cursor() 메서드를 호출하여 Cursor 객체를 가져온다. DB 커서는 Fetch 동작을 관리하는데 사용되는데, 만약 DB 자체가 커서를 지원하지 않으면, Python DB API에서 이 커서 동작을 Emulation 하게 된다.

  4. Cursor 객체의 execute() 메서드를 사용하여 SQL 문장을 DB 서버에 보낸다.

  5. SQL 쿼리의 경우 Cursor 객체의 fetchall(), fetchone(), fetchmany() 등의 메서드를 사용하여 데이타를 서버로부터 가져온 후, Fetch 된 데이타를 사용한다.

  6. 삽입, 갱신, 삭제 등의 DML(Data Manipulation Language) 문장을 실행하는 경우, INSERT/UPDATE/DELETE 후 Connection 객체의 commit() 메서드를 사용하여 데이타를 확정 갱신한다.

  7. Connection 객체의 close() 메서드를 사용하여 DB 연결을 닫는다.


3. MySQL쿼리

SQL 쿼리는 execute()메서드를 실행하면 된다.

아래의 예제를 통해 DB에 있는 특정 table의 전체 row 데이터를 출력해보겠다.

import pymysql

# MySQL Connection 연결
conn = pymysql.connect(host='localhost', 
                        user='dojun', password='', db='android-akinator-db', charset='utf8')
# Connection으로부터 Cursor 생성
curs = conn.cursor()

# SQL문 실행
sql = "select * from food_list"
curs.execute(sql)

# 데이터 Fetch
rows = curs.fetchall()
print (rows)

# Connection 닫기
conn.close()


profile
Better late than never

2개의 댓글

comment-user-thumbnail
2021년 12월 23일

작성 해주신 시리즈 덕에 정말 도움 많이 받았습니다! :) 좋은 글 감사합니다

1개의 답글