-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathconfig.py
75 lines (56 loc) · 2.44 KB
/
config.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# -*- coding:utf-8 -*-
import os
from yaml import load as load_yml
class YmlEnv:
def __init__(self, path):
self.path = path
def load_to_env(self):
if os.path.exists(self.path):
with open(self.path) as config_file:
ret = load_yml(config_file)
os.environ['FLASK_ENV'] = ret.get('FLASK_ENV') or 'development'
return ret
else:
raise RuntimeError('Please complete your env.yml')
# config file must exit
env_config = YmlEnv('env/env.yml').load_to_env()
base_dir = os.path.abspath(os.path.dirname(__file__))
# SAE or local variable
db_host = os.environ.get('MYSQL_HOST', '127.0.0.1')
db_port = os.environ.get('MYSQL_PORT', '3306')
db_user = os.environ.get('MYSQL_USER', 'root')
db_password = os.environ.get('MYSQL_PASS', 'root')
db_name = os.environ.get('MYSQL_DB', 'clockin') # MYSQL_DB: app_zxzx
class BaseConfig(object):
SECRET_KEY = env_config.get('SECRET_KEY') or 'this is a very simple backend'
# SQLALCHEMY_DATABASE_URI="mysql+pymysql://{}:{}@{}/{}".format(db_user, db_password, '{}:{}'.format(db_host, db_port), db_name)
SQLALCHEMY_DATABASE_URI = env_config.get('SQLALCHEMY_DATABASE_URI') or os.environ.get('SQLALCHEMY_DATABASE_URI') or 'sqlite:///' + os.path.join(base_dir, 'app.sqlite')
SQLALCHEMY_TRACK_MODIFICATIONS = False
COS_SECRETID = env_config.get('COS_SECRET_ID')
COS_SECRETKEY = env_config.get('COS_SECERT_KEEY')
COS_REGION = env_config.get('COS_REGION')
COS_BUCKET = env_config.get('COS_BUCKET')
COS_APPID = env_config.get('COS_APPID')
DOMAIN_NAME = env_config.get('DOMAIN_NAME')
PORT = env_config.get('PORT') or os.environ.get('APP_PORT') or 8000
HTTP = env_config.get('HTTP') or os.environ.get('HTTP')
ENVIRON = env_config.get('ENVIRON') or "dev"
REDIS_URL = env_config.get('REDIS_URL') or "redis://:@localhost:6379/0"
MAIL_SERVER = "smtp.qq.com"
MAIL_PORT = "465"
MAIL_USE_TLS = True
MAIL_USERNAME = os.environ.get('MAIL_USERNAME') or 'YOUR EMAIL'
MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD') or 'YOUR EMAIL TOKEN'
MAIL_SUBJECT_PREFIX = "ShortUrl<[email protected]>"
MAIL_SENDER = "ShortUrl Team"
class ProductionConfig(BaseConfig):
DEBUG = False
class DevelopmentConfig(BaseConfig):
DEBUG = True
class TestingConfig(BaseConfig):
TESTING = True
CONFIGS = {
'production': ProductionConfig,
'development': DevelopmentConfig,
'testing': TestingConfig
}