위 포스팅을 한 후에 config code에 대한 문의가 몇 건 정도 있었다. 주식종목분석기 프로그램의 경우도 python을 이용해 개발한 single application인데, 프로그램을 시작하기에 앞서, 따로관리해야할 민감정보같은 경우는 config.json 파일로 만들어놓고 그 파일을 config.py가 읽어들여 어플리케이션을 시작하도록 하였다. 간단한 어플리케이션을 짤때 꽤 유용한 코드다.
1. config.json
- 따로 저장할 민감정보들은 아래와 같이 JSON 형태로 저장해두고..
{
"DATABASE": {
"DBMS": "postgres",
"HOST": "localhost",
"PORT": "5432",
"DB_NAME": "database_name",
"USERNAME" : "database_username",
"PASSWORD" : "database_password"
}
...
}
2. config.py
- 아래와같이 불러서 사용하면 된다.
import json
from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
## read config json file
with open('config/config.json', 'r') as f:
config = json.load(f)
db_string = config["DATABASE"]["DBMS"] + "://" \
+ config["DATABASE"]["USERNAME"] + ":" \
+ config["DATABASE"]["PASSWORD"] + "@" \
+ config["DATABASE"]["HOST"] + ":" \
+ config["DATABASE"]["PORT"] + "/" \
+ config["DATABASE"]["DB_NAME"]
db = create_engine(db_string)
base = declarative_base()
Session = sessionmaker(db)