RDS와 플라스크 연결

박준수·2023년 2월 12일
0

AWS RDS(Mysql(db))

Amazon RDS를 사용하면 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영 및 확장할 수 있습니다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 시간 소모적인 관리 작업을 자동화하면서, 비용 효율적이고 크기 조정 가능한 용량을 제공합니다. 사용자가 애플리케이션에 집중해 애플리케이션에 필요한 빠른 성능, 고가용성, 보안 및 호환성을 제공할 수 있도록 지원합니다.

aws rds 생성후 mysql 워크벤치와 연결

aws rds 생성후 mysql 워크벤치와 연결방법

ORM : 데이터베이스에 데이터를 저장하는 테이블을 파이썬 클래스로 만들어 관리하는 기술

ORM의 장점

  • ORM을 이용하면 데이터베이스 종류에 상관 없이 일관된 코드를 유지할 수 있어서 프로그램을 유지·보수하기가 편리하다.
  • 내부에서 안전한 SQL 쿼리를 자동으로 생성해 주므로 개발자가 달라도 통일된 쿼리를 작성할 수 있고 오류 발생률도 줄일 수 있다.
  • 모델(Model) : 데이터를 관리하는 데 사용하는 ORM 클래스

SQLAlchemy : 파이썬 ORM 라이브러리
Flask-Migrate 라이브러리를 설치하면 SQLAlchemy도 함께 설치됨

  • pip install flask-migrate

flask 데이터베이스 관리 명령어

  • flask db init : 데이터베이스를 초기화(처음 한번만 실행)
  • flask db migrate : 모델을 새로 생성하거나 변경할 때 사용 (실행하면 작업파일이 생성된다.)
  • flask db upgrade : 모델의 변경 내용을 실제 데이터베이스에 적용할 때 사용 (위에서 생성된 작업파일을 실행하여 데이터베이스를 변경한다.)

RDS와 Flask 연결

1. RDS설정 파일 작성

  • aws에서 rds를 생성하고 DatabaseConfig.py에 다음과 같이 작성한다.
  • app.py의 create_app()함수에 다음과 같이 적으면 연결이 된다.

2. ORM 적용후 데이터베이스 초기화

def create_app():
    app.config['JSON_AS_ASCII'] = False
    app.config.from_object(DatabaseConfig)
    # ORM
    db.init_app(app)
    migrate.init_app(app, db)
  • flask db init 명령어 사용

3. 모델 생성

  • 데이터베이스는 단순히 상품 데이터를 조회할 용도로 사용하기에 Products테이블 하나 있다.
  • flask db migrate, flask db upgrade 명령어로 테이블 반영

4. 파이참과 RDS연결

profile
방구석개발자

0개의 댓글