TOP
class="layout-aside-left paging-number">
본문 바로가기
[파이썬 Projects]/<파이썬 웹개발>

[파이썬] 플라스크(Flask) - 데이터베이스 (1)

by 기록자_Recordian 2024. 7. 16.
728x90
반응형
시작에 앞서
해당 내용은 <가장 빠른 풀스택을 위한 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 설치하는 방법 (구글에 검색하면 잘 나옵니다.)

더보기

먼저 윈도우 버튼을 오른쪽 마우스로 클릭 > 시스템 에서 시스템 종류 확인

그리고 하단의 링크로 들어가서 

 

MySQL :: Download MySQL Installer (Archived Versions)

Please note that these are old versions. New releases will have recent bug fixes and features! To download the latest release of MySQL Installer, please visit MySQL Downloads. MySQL open source software is provided under the GPL License.

downloads.mysql.com

 

(어피치가 가리키고 있는) 파일을 다운로드

 다운로드 한 파일을 켜고 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: 접속할 데이터베이스의 이름


다음 내용

 

[파이썬] 플라스크(Flask) - 데이터베이스 (2)

시작에 앞서해당 내용은 , Dave Lee 지음. BJ Public 출판.내용을 토대로 작성되었습니다. 보다 자세한 사항은 해당 교재를 참고하시기 바랍니다.이전 내용 [파이썬] 플라스크(Flask) - 데이터베이스 (1)

puppy-foot-it.tistory.com

 

728x90
반응형