본문 바로가기

window 환경에서 개발하기/Flask

Flask에 MySQL 데이터 연동 ① DB 연동 순서(pymysql)

반응형

 

 

 

 

이전 포스팅까지 진행하셨다면 URL경로 별로 페이지를 여는 방법은 아실겁니다.

 

 

 

 

기본 경로 출력 결과물

 

 

 

이 페이지에 MySQL 데이터를 출력해주는 작업을 해보겠습니다.

 

 

일단 MySQL 연동을 위한 기본적인 틀부터 봅시다.

 

 

# python 파일


# 모듈 import
import pymysql


# MySQL 데이터베이스 연결
db = pymysql.connect(host='127.0.0.1', user='root', password='1234', db='shop', charset='utf8')

# 데이터에 접근
cursor = db.cursor()

# SQL query 작성
sql = "select * from users"

# SQL query 실행
cursor.execute(sql)

# db 데이터 가져오기
cursor.fetchall() #모든 행 가져오기
cursor.fetchone() # 하나의 행만 가져오기
cursor.fetchmany(n) # n개의 데이터 가져오기 

# 수정 사항 db에 저장
db.commit()
 
# Database 닫기
db.close()

 

 

1. 모듈 import

 

import pymysql

 

 

Flask에서 MySQL을 연동하기 위해서는 pymysql 모듈을 설치해야 합니다.

 

pip install pymysql로 미리 설치해둡시다.

 

 

# bash
pip install pymysql

 

 

 

 

2. MySQL데이터베이스 연결

 

 

데이터베이스에 접속을 해서 사용할 테이블을 db라는 객체에 할당해야합니다.

 

db = pymysql.connect(host='127.0.0.1', user='root', password='1234', db='shop', charset='utf8')

 

 

위 코드는 접속할 mysql server 주소는 127.0.0.1 이고, MySQL 계정은 root, root의 비밀번호는 '1234',

 

사용할 데이터베이스 이름은 shop, 인코딩은 'utf8'으로 하겠다는 뜻입니다.

 

 

 

 

 

3. 데이터에 접근

 

 

cursor = db.cursor()

 

 

cursor 객체를 만들어서, 객체를 통해 데이터베이스의 데이터에 접근할 수 있도록 합니다.

 

 

 

 

4. SQL query 작성/실행

 

 

실행할 SQL query 문을 작성합니다.

 

sql = "select * from users"
cursor.execute(sql)

 

위 코드는 users 테이블에 있는 모든 데이터를 불러오는 SQL문입니다.

 

 

 

5. DB 데이터 가져오기

 

 

데이터를 가져오는 cursor 메서드는 여러 종류가 있습니다.

 

 

cursor.fetchall() #모든 행 가져오기
cursor.fetchone() # 하나의 행만 가져오기
cursor.fetchmany(n) # n개의 데이터 가져오기

 

위에 언급한 fetchall(), fetchone(), fetchmany(n) 메서드는 일부분인 뿐이니

 

필요한 기능은 구글링으로 찾아서 적용하면 됩니다.

 

 

 

6. DB 저장/종료

 

db.commit()
db.close()

 

DB에 생성, 삭제, 수정 등 데이터 변동이 생기면 commit() 메서드로 저장을 해줘야합니다. 

 

DB 사용 후에는 close() 메서드로 닫아줍니다.

 

 

 

 

 

다음 포스팅에서는 이 순서를 활용해서 DB 데이터를 웹 페이지에 출력해보겠습니다.

 

 

 

 

반응형