edit : 기본 rest서버구조 추가
This commit is contained in:
111
rest/app/common/config.py
Normal file
111
rest/app/common/config.py
Normal file
@@ -0,0 +1,111 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
@File: config.py
|
||||
@Date: 2020-09-14
|
||||
@author: A2TEC
|
||||
@section MODIFYINFO 수정정보
|
||||
- 수정자/수정일 : 수정내역
|
||||
- 2022-01-14/hsj100@a2tec.co.kr : refactoring
|
||||
@brief: Configurations
|
||||
"""
|
||||
|
||||
from dataclasses import dataclass
|
||||
from os import path, environ
|
||||
|
||||
from rest.app.common import consts
|
||||
from rest.app.models import UserInfo
|
||||
|
||||
base_dir = path.dirname(path.dirname(path.dirname(path.abspath(__file__))))
|
||||
|
||||
|
||||
@dataclass
|
||||
class Config:
|
||||
"""
|
||||
기본 Configuration
|
||||
"""
|
||||
BASE_DIR: str = base_dir
|
||||
DB_POOL_RECYCLE: int = 900
|
||||
DB_ECHO: bool = True
|
||||
DEBUG: bool = False
|
||||
TEST_MODE: bool = False
|
||||
DEV_TEST_CONNECT_ACCOUNT: str | None = None
|
||||
|
||||
# NOTE(hsj100): SERVICE_AUTH_API_KEY (token 방식으로 진행)
|
||||
SERVICE_AUTH_API_KEY: bool = False
|
||||
|
||||
DB_URL: str = environ.get('DB_URL', f'mysql+pymysql://{consts.DB_USER_ID}:{consts.DB_USER_PW}@{consts.DB_ADDRESS}:{consts.DB_PORT}/{consts.DB_NAME}?charset={consts.DB_CHARSET}')
|
||||
REST_SERVER_PORT = consts.REST_SERVER_PORT
|
||||
|
||||
SW_TITLE = consts.SW_TITLE
|
||||
SW_VERSION = consts.SW_VERSION
|
||||
SW_DESCRIPTION = consts.SW_DESCRIPTION
|
||||
TERMS_OF_SERVICE = consts.TERMS_OF_SERVICE
|
||||
CONTEACT = consts.CONTEACT
|
||||
LICENSE_INFO = consts.LICENSE_INFO
|
||||
|
||||
GLOBAL_TOKEN = consts.ADMIN_INIT_ACCOUNT_INFO.connect_token
|
||||
|
||||
COOKIES_AUTH = 'Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MTQsImVtYWlsIjoia29hbGFAZGluZ3JyLmNvbSIsIm5hbWUiOm51bGwsInBob25lX251bWJlciI6bnVsbCwicHJvZmlsZV9pbWciOm51bGwsInNuc190eXBlIjpudWxsfQ.4vgrFvxgH8odoXMvV70BBqyqXOFa2NDQtzYkGywhV48'
|
||||
|
||||
|
||||
@dataclass
|
||||
class LocalConfig(Config):
|
||||
TRUSTED_HOSTS = ['*']
|
||||
ALLOW_SITE = ['*']
|
||||
DEBUG: bool = True
|
||||
|
||||
|
||||
@dataclass
|
||||
class ProdConfig(Config):
|
||||
TRUSTED_HOSTS = ['*']
|
||||
ALLOW_SITE = ['*']
|
||||
|
||||
|
||||
@dataclass
|
||||
class TestConfig(Config):
|
||||
DB_URL: str = environ.get('DB_URL', f'mysql+pymysql://{consts.DB_USER_ID}:{consts.DB_USER_PW}@{consts.DB_ADDRESS}/{consts.DB_NAME}_test?charset={consts.DB_CHARSET}')
|
||||
TRUSTED_HOSTS = ['*']
|
||||
ALLOW_SITE = ['*']
|
||||
TEST_MODE: bool = True
|
||||
|
||||
|
||||
@dataclass
|
||||
class DevConfig(Config):
|
||||
TRUSTED_HOSTS = ['*']
|
||||
ALLOW_SITE = ['*']
|
||||
DEBUG: bool = True
|
||||
DB_URL: str = environ.get('DB_URL', f'mysql+pymysql://{consts.DB_USER_ID}:{consts.DB_USER_PW}@{consts.DB_ADDRESS}/{consts.DB_NAME}_dev?charset={consts.DB_CHARSET}')
|
||||
REST_SERVER_PORT = consts.REST_SERVER_PORT + 1
|
||||
|
||||
SW_TITLE = '[Dev] ' + consts.SW_TITLE
|
||||
|
||||
|
||||
@dataclass
|
||||
class MyConfig(Config):
|
||||
TRUSTED_HOSTS = ['*']
|
||||
ALLOW_SITE = ['*']
|
||||
DEBUG: bool = True
|
||||
DB_URL: str = environ.get('DB_URL', f'mysql+pymysql://{consts.DB_USER_ID}:{consts.DB_USER_PW}@{consts.DB_ADDRESS}/{consts.DB_NAME}_my?charset={consts.DB_CHARSET}')
|
||||
REST_SERVER_PORT = consts.REST_SERVER_PORT + 2
|
||||
|
||||
# NOTE(hsj100): DEV_TEST_CONNECT_ACCOUNT
|
||||
# DEV_TEST_CONNECT_ACCOUNT: UserInfo = UserInfo(**consts.ADMIN_INIT_ACCOUNT_INFO)
|
||||
# DEV_TEST_CONNECT_ACCOUNT: str = None
|
||||
|
||||
# NOTE(hsj100): SERVICE_AUTH_API_KEY (token 방식으로 진행)
|
||||
SERVICE_AUTH_API_KEY: bool = False
|
||||
|
||||
SW_TITLE = '[My] ' + consts.SW_TITLE
|
||||
|
||||
|
||||
def conf():
|
||||
"""
|
||||
환경 불러오기
|
||||
:return:
|
||||
"""
|
||||
config = dict(prod=ProdConfig, local=LocalConfig, test=TestConfig, dev=DevConfig, my=MyConfig)
|
||||
return config[environ.get('API_ENV', 'local')]()
|
||||
return config[environ.get('API_ENV', 'dev')]()
|
||||
return config[environ.get('API_ENV', 'my')]()
|
||||
return config[environ.get('API_ENV', 'test')]()
|
||||
|
||||
Reference in New Issue
Block a user