이전 포스팅까지 진행하셨다면 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 데이터를 웹 페이지에 출력해보겠습니다.
'window 환경에서 개발하기 > Flask' 카테고리의 다른 글
Flask 개발 기초 ③ API 라우팅 함수 관리(블루프린트) (0) | 2023.04.27 |
---|---|
Flask 개발 기초 ② 애플리케이션 팩토리(application factory) (0) | 2023.04.27 |
Flask 개발 기초 ① 개발 환경 구축, flask 설치(+가상 환경 배치 파일 만드는 방법) (0) | 2023.04.26 |