[Flask] MySQL Query

김영환·2021년 1월 3일
0
post-thumbnail

MySQL DB 모듈

python에서 MySQL 데이터베이스를 사용하기 위해 PyMySql 이라는 모듈을 사용한다.

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

MYSQL_CONFIGS = {
     'host': 'localhost',
     'port': 3306,
     'database': 'test',
     'user': 'root',
     'passwd': '12345',
     'charset': 'utf8mb4'
 }
  • DB 접속이 성공하면, Connection 객체로부터 cursor() 매서드를 호출하여 Cursor 객체를 가져온다. DB 커서는 fetch 동작을 관리한다
#controllers/user.py

from connections import db_connector

db = db_connector()

#models.py

with db.cursor() as cursor:

# Connection 으로부터 Dictoionary Cursor 생성
with db.cursor(pymysql.cursors.DictCursor) as cursor:
  • Cursor 객체의 execute() 매서드를 사용하여 sql 문장을 db서버에 보낸다
#models.py
# SQL문 실행

result = cursor.execute(query, (user_id, name))
  • SQL 쿼리의 경우 Cursor 객체의 fetchall(), fetchone(), fetchmany() 등의 메서드를 사용하여 데이터를 서버로부터 가져온 후, Fetch 된 데이터를 사용한다.
  • Connection 객체의 close() 메서드를 사용하여 DB 연결을 닫는다.
#controllers/user.py
# Connection 닫기

finally:
        if db:
            db.close()
``

0개의 댓글