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,
)
반응형
'👩💻 Develope > Python' 카테고리의 다른 글
[Pandas] group by 했을 때 key외의 다른 컬럼 나오게하기 (1) | 2023.12.20 |
---|---|
[Pandas] 데이터 프레임 날짜 다루기 (0) | 2023.12.19 |
[Python] SQLAlchemy (0) | 2023.12.13 |
[Python] 이차원 리스트 출력하기 (1) | 2023.12.07 |
[Python/Teams] Teams Webhook 메시지 보내기 (0) | 2023.12.06 |