-
Notifications
You must be signed in to change notification settings - Fork 43
/
Copy pathconfig.py
89 lines (76 loc) · 2.92 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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#!/usr/bin/env python
#encoding:utf-8
import os
from apscheduler.jobstores.sqlalchemy import SQLAlchemyJobStore
basedir = os.path.abspath(os.path.dirname(__file__))
###Mysql配置
mysql_info = dict(
host = '127.0.0.1',
port = 3306,
dbname = 'ctask',
username = 'root',
password = '123456'
)
MYSQL_URL = 'mysql+pymysql://%s:%s@%s:%s/%s?charset=utf8'%(mysql_info['username'],mysql_info['password'],
mysql_info['host'],mysql_info['port'],mysql_info['dbname'])
class Config:
"""基础配置,导入所有配置中"""
# 数据库自动提交数据
SQLALCHEMY_COMMIT_ON_TEARDOWN = True
# 如果设置成 True (默认情况),Flask-SQLAlchemy 将会追踪对象的修改并且发送信号。
# 这需要额外的内存, 如果不必要的可以禁用它。
SQLALCHEMY_TRACK_MODIFICATIONS = True
# 查询耗时过长的时间
SLOW_DB_QUERY_TIME = 0.5
# 邮件信息
MAIL_SUBJECT_PREFIX = '<任务系统>'
MAIL_SENDER = '任务系统 <[email protected]>'
MAIL_PORT = 465
MAIL_SERVER = 'smtp.qq.com'
MAIL_USE_TLS = False
MAIL_USE_SSL = True
MAIL_USERNAME = os.environ.get('MAIL_USERNAME') or '[email protected]'
MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD') or '123456'
# apscheduler 配置信息
JOBS = [ ]
SCHEDULER_JOBSTORES = {
'default': SQLAlchemyJobStore(url=MYSQL_URL)
}
SCHEDULER_EXECUTORS = {
'default': {'type': 'threadpool', 'max_workers': 20}
}
SCHEDULER_JOB_DEFAULTS = {
'coalesce': False,
'max_instances': 5
}
SCHEDULER_API_ENABLED = True
# 配置类可以定义 init_app() 类方法,其参数是程序实例。
# 在这个方法中,可以执行对当前 环境的配置初始化。
# 现在,基类 Config 中的 init_app() 方法为空。
@staticmethod
def init_app(app):
pass
class DevelopmentConfig(Config):
"""开发配置 以及开发时使用的数据库地址"""
DEBUG = True
SQLALCHEMY_DATABASE_URI = MYSQL_URL
#SQLALCHEMY_DATABASE_URI = os.environ.get('DEV_DATABASE_URL') or 'sqlite:///' + os.path.join(basedir, 'data-dev.sqlite')
# @classmethod
# def init_app(cls, app):
# Config.init_app(app)
# print('[This is Develoment...]')
class TestingConfig(Config):
"""测试配置 以及测试时使用的数据库地址"""
TESTING = True
SQLALCHEMY_DATABASE_URI = os.environ.get('TEST_DATABASE_URL') or \
'sqlite:///' + os.path.join(basedir, 'data-test.sqlite')
class ProductionConfig(Config):
"""正常使用时的配置 以及数据库地址 发生错误时自动发送邮件"""
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
'sqlite:///' + os.path.join(basedir, 'data.sqlite')
config = {
'development': DevelopmentConfig,
'testing': TestingConfig,
'production': ProductionConfig,
'default': DevelopmentConfig
}