👩‍💻 Develope/Python

[Python] Yaml 파일 불러오기

heywantodo 2023. 12. 14. 10:24
728x90
반응형

[Python] Yaml 파일 불러오기

SQLAlchemy에서 사용할 db 커넥션 pool을 생성하는데,

DB 연결 정보와 같은 민감 정보를 yaml 파일에 저장해놓고 그걸 불러와서 사용했다.

 

먼저 다음과 같이 config.yaml 파일을 생성해준다.

db_config:
  db_url: "mysql+pymysql://localhost:3306/fastapi_db?charset=utf8mb4"
  db_pool_recycle: 900
  db_echo: True
  db_pool_size: 1
  db_max_overflow: 1

db 커넥션 pool을 만들 파이썬 파일 하나를 생성한 후 

yaml 파일을 사용하기 위해 파일 경로를 지정할 os 라이브러리와 yaml 라이브러리를 import 해준다.

import os, yaml

config파일 path를 지정해준후 with open을 통해서 yaml파일을 load한다.

config_path = os.path.join('/home/ubuntu/fastApiProject/app', 'config.yaml')

with open(config_path) as f:
    config = yaml.safe_load(f)

가져온 yaml 파일은 다음과 같이 사용이 가능하다.

def init_db(self, app: FastAPI):
    db_url = config['db_config']['db_url']
    pool_recycle = config['db_config']['db_pool_recycle']
    db_echo = config['db_config']['db_echo']
    pool_size = config['db_config']['db_pool_size']
    max_overflow = config['db_config']['db_max_overflow']
    self._engines = create_engine(
        db_url,
        echo=db_echo,
        pool_recycle=pool_recycle,
        pool_pre_ping=True,
        pool_size=pool_size,
        max_overflow=max_overflow,
    )
728x90
반응형