시작에 앞서
해당 내용은 <가장 빠른 풀스택을 위한 Flask & FastAPI>, Dave Lee 지음. BJ Public 출판.
내용을 토대로 작성되었습니다. 보다 자세한 사항은 해당 교재를 참고하시기 바랍니다.
데이터베이스 (SQLAlchemy)
플라스크와 파이썬에서는 여러 가지 데이터베이스를 연결하여 사용할 수 있다.
SQLAlchemy는 파이썬에서 사용할 수 있는 ORM(Object-Relational Mapping) 라이브러리이다. 즉, 데이터베이스 테이블을 파이썬 클래스로 매핑해주는 역할을 한다. 이를 통해 SQL 쿼리를 직접 작성하지 않고도 데이터베이스 연산을 수행할 수 있다.
플라스크와 MySQL 연동
[MySQL을 기반으로 플라스크와 연동하는 방법]
- 데이터베이스 생성: 'db_name'에 해당하는 MySQL 데이터베이스가 생성되어 있어야 한다.
- 적절한 데이터베이스 접속 설정: 자신의 환경에 맞는 SQLALCHEMY_DATABASE_URI 기반 데이터베이스 접속 설정을 수정한다
- 플라스크 버전 확인; 플라스크 버전에 따라 에러가 발생할 수 있다.
pip show Flask
교재 상에서는 3.0.2 버전으로 진행하고 있으니, 위의 명령어를 통해 버전을 확인하고,
버전이 다르면 아래의 명령어로 설치 후 재실행한다.
pip install Flask==3.0.2
◆ 필요한 패키지 설치
pip install Flask-SQLAlchemy==3.1.1
pip install pymysql==1.1.0
◆ 플라스크 애플리케이션과 SQLAlchemy 설정
우선 MySQL 데이터베이스에서 데이터베이스를 생성해야 한다. (접속 시 데이터베이스 이름을 요구하기 때문)
백엔드에서는 데이터베이스를 많이 사용하므로 데이터베이스와 SQL 언어는 반드시 별도로 정리해야 한다.
또한, MySQL 이 PC에 설치되어 있어야 한다.
★ MySQL 설치하는 방법 (구글에 검색하면 잘 나옵니다.)
먼저 윈도우 버튼을 오른쪽 마우스로 클릭 > 시스템 에서 시스템 종류 확인
그리고 하단의 링크로 들어가서
(어피치가 가리키고 있는) 파일을 다운로드
다운로드 한 파일을 켜고 Cutsom 클릭
필요한 목록을 추가한 뒤 Next 클릭
[MySQL Server 8.0] – [MySQL Server 8.0.21 – X64]
[Applications] – [MySQL Workbench] – [MySQL Workbench 8.0] – [MySQL Workbench 8.0.21 – X64]
[Documentation] – [Samples and Examples] – [Samples and Examples 8.0] – [Samples and Examples 8.0.21 – X86]
설치가 완료되면 Status 항목에 Complete 문구가 뜬다.
그리고 Finish를 클릭하면 설치 완료
보다 자세한 내용은 하단 링크 참고
https://giveme-happyending.tistory.com/203
만약 환경변수 설정이 필요하다면
https://dog-developers.tistory.com/21
set up new connection을 해야 한다면
https://moo-you.tistory.com/205
응용프로그램에서 처리되지 않은 예외가 발생하였습니다. 라는 오류가 뜬다면
https://blog.naver.com/credenda/222318770221
★ 오류가 뜨면 그냥 MySQL을 삭제해버리고 (제어판 삭제, C드라이브 삭제) 다시 다운 받으시는게 정신건강에 더 좋습니다...
MySQL Workbench와 같은 툴로 접속하여 다음 SQL 명령으로 데이터베이스를 생성한다.
CREATE DATABASE db_name;
데이터베이스를 생성한 후에는 플라스크 코드로 다음과 같이 작성한다.
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLACHEMY-DATABASE_URI'] = 'mysql+pypmysql://username:password@host/db_name'
db = SQLAlchemy(app)
★ app.config['SQLACHEMY-DATABASE_URI'] 의 각 값
1. mysql+pymysql: 'DBAPI(데이터베이스 API) 구현'을 선택하는 부분.
mysql은 사용하려는 데이터베이스의 종류를 나타내며, pymysql은 SQLAlchemy가 실제로 데이터베이스와 통신하는 데 사용할 파이썬 라이브러리이다.
즉, mysql+pymysql은 SQLAlchemy에게 MySQL을 사용하고, 그 통신에는 pymysql 라이브러리를 사용하겠다는 의미.
2. username:password: MySQL 데이터베이스의 사용자 이름과 비밀번호
3. host: MySQL 서버의 주소. 로컬에서 실행하는 경우 일반적으로 localhost 이다.
4. port: MySQL 서버의 포트. 로컬에서 실행하는 경우 일반적으로 3306이며, host로 실행하면 자동으로 3306 포트로 접속을 시도하므로 보통의 경우에는 host만 기재해도 접속 가능하다.
5. db_name: 접속할 데이터베이스의 이름
다음 내용
'[파이썬 Projects] > <파이썬 웹개발>' 카테고리의 다른 글
[파이썬] 플라스크(Flask) - 데이터베이스 (3) (2) | 2024.07.20 |
---|---|
[파이썬] 플라스크(Flask) - 데이터베이스 (2) (0) | 2024.07.18 |
[파이썬] 플라스크(Flask) - 로깅 (0) | 2024.07.16 |
[파이썬] 플라스크(Flask) - 세션과 쿠키 (0) | 2024.07.15 |
[파이썬] 플라스크(Flask) - 블루프린트 (0) | 2024.07.15 |