1
|
1
|
import decimal
|
|
2
|
+from re import template
|
2
|
3
|
|
3
|
4
|
from flask import Flask as _Flask
|
4
|
5
|
from flask.json import JSONEncoder as _JSONEncoder
|
...
|
...
|
@@ -58,18 +59,51 @@ def create_app(): |
58
|
59
|
app.config['OAUTH2_JWT_KEY'] = 'secret-key'
|
59
|
60
|
app.config['OAUTH2_JWT_ALG'] = 'HS256'
|
60
|
61
|
# app.config['SQLALCHEMY_ECHO'] = True
|
61
|
|
-
|
|
62
|
+
|
62
|
63
|
# allows cookies and credentials to be submitted across domains
|
63
|
64
|
app.config['CORS_SUPPORTS_CREDENTIALS'] = true
|
64
|
|
- app.config['CORS_ORIGINS ']="*"
|
|
65
|
+ app.config['CORS_ORIGINS '] = "*"
|
65
|
66
|
|
66
|
67
|
# 跨域设置
|
67
|
68
|
CORS(app)
|
68
|
69
|
|
69
|
70
|
# swagger设置
|
70
|
71
|
swagger_config = Swagger.DEFAULT_CONFIG
|
|
72
|
+ SWAGGER_TEMPLATE = {
|
|
73
|
+ # "openapi": "3.0.0",
|
|
74
|
+ # "components": {
|
|
75
|
+ # "securitySchemes": {
|
|
76
|
+ # "bearerAuth": {
|
|
77
|
+ # "type": "http",
|
|
78
|
+ # "scheme": "bearer",
|
|
79
|
+ # "bearerFormat": "JWT"
|
|
80
|
+ # },
|
|
81
|
+ # }
|
|
82
|
+ # },
|
|
83
|
+ "securityDefinitions": {
|
|
84
|
+ "APIKeyHeader": {
|
|
85
|
+ "type": "apiKey",
|
|
86
|
+ "in": "header",
|
|
87
|
+ "name": "Authorization"
|
|
88
|
+ }
|
|
89
|
+ },
|
|
90
|
+
|
|
91
|
+ "security": [{
|
|
92
|
+ "APIKeyHeader": []
|
|
93
|
+ }
|
|
94
|
+ ]
|
|
95
|
+ }
|
|
96
|
+
|
|
97
|
+ swagger_config = Swagger.DEFAULT_CONFIG
|
71
|
98
|
swagger_config.update(configure.swagger_configure)
|
72
|
|
- Swagger(app, config=swagger_config)
|
|
99
|
+ # swagger_config['openapi'] = "3.0.0"
|
|
100
|
+ # swagger_config['swagger_ui_bundle_js'] = '//unpkg.com/swagger-ui-dist@3/swagger-ui-bundle.js'
|
|
101
|
+ # swagger_config['swagger_ui_standalone_preset_js'] = '//unpkg.com/swagger-ui-dist@3/swagger-ui-standalone-preset.js'
|
|
102
|
+ # swagger_config['jquery_js'] = '//unpkg.com/jquery@2.2.4/dist/jquery.min.js'
|
|
103
|
+ # swagger_config['swagger_ui_css'] = '//unpkg.com/swagger-ui-dist@3/swagger-ui.css'
|
|
104
|
+
|
|
105
|
+ Swagger(app, config=swagger_config,
|
|
106
|
+ template=SWAGGER_TEMPLATE)
|
73
|
107
|
|
74
|
108
|
# 创建数据库
|
75
|
109
|
db.init_app(app)
|
...
|
...
|
@@ -77,9 +111,12 @@ def create_app(): |
77
|
111
|
|
78
|
112
|
# 日志
|
79
|
113
|
logging.basicConfig(level=configure.log_level)
|
80
|
|
- log_file = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), "logs", "log.txt")
|
81
|
|
- handler = logging.FileHandler(log_file, encoding='UTF-8') # 设置日志字符集和存储路径名字
|
82
|
|
- logging_format = logging.Formatter('[%(levelname)s] %(asctime)s %(message)s')
|
|
114
|
+ log_file = os.path.join(os.path.dirname(os.path.dirname(
|
|
115
|
+ os.path.realpath(__file__))), "logs", "log.txt")
|
|
116
|
+ handler = logging.FileHandler(
|
|
117
|
+ log_file, encoding='UTF-8') # 设置日志字符集和存储路径名字
|
|
118
|
+ logging_format = logging.Formatter(
|
|
119
|
+ '[%(levelname)s] %(asctime)s %(message)s')
|
83
|
120
|
handler.setFormatter(logging_format)
|
84
|
121
|
app.logger.addHandler(handler)
|
85
|
122
|
|
...
|
...
|
@@ -94,14 +131,13 @@ def create_app(): |
94
|
131
|
# 不检测https
|
95
|
132
|
os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'
|
96
|
133
|
|
97
|
|
-
|
98
|
134
|
@app.before_first_request
|
99
|
135
|
def init_data():
|
100
|
136
|
pass
|
101
|
|
-
|
102
|
137
|
# start_schedule()
|
103
|
138
|
return app
|
104
|
139
|
|
|
140
|
+
|
105
|
141
|
def create_schedule():
|
106
|
142
|
monitor = Flask(__name__)
|
107
|
143
|
monitor.config['SQLALCHEMY_DATABASE_URI'] = configure.SQLALCHEMY_DATABASE_URI
|
...
|
...
|
@@ -112,13 +148,13 @@ def create_schedule(): |
112
|
148
|
|
113
|
149
|
# allows cookies and credentials to be submitted across domains
|
114
|
150
|
monitor.config['CORS_SUPPORTS_CREDENTIALS'] = true
|
115
|
|
- monitor.config['CORS_ORIGINS ']="*"
|
116
|
|
-
|
|
151
|
+ monitor.config['CORS_ORIGINS '] = "*"
|
|
152
|
+
|
117
|
153
|
# swagger设置
|
118
|
154
|
swagger_config = Swagger.DEFAULT_CONFIG
|
119
|
155
|
swagger_config.update(configure.swagger_configure)
|
120
|
156
|
Swagger(monitor, config=swagger_config)
|
121
|
|
-
|
|
157
|
+
|
122
|
158
|
# 创建数据库
|
123
|
159
|
db.init_app(monitor)
|
124
|
160
|
db.create_all(app=monitor)
|
...
|
...
|
@@ -128,9 +164,12 @@ def create_schedule(): |
128
|
164
|
|
129
|
165
|
# 日志
|
130
|
166
|
logging.basicConfig(level=configure.log_level)
|
131
|
|
- log_file = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), "logs", "monitor_log.txt")
|
132
|
|
- handler = logging.FileHandler(log_file, encoding='UTF-8') # 设置日志字符集和存储路径名字
|
133
|
|
- logging_format = logging.Formatter('[%(levelname)s] %(asctime)s %(message)s')
|
|
167
|
+ log_file = os.path.join(os.path.dirname(os.path.dirname(
|
|
168
|
+ os.path.realpath(__file__))), "logs", "monitor_log.txt")
|
|
169
|
+ handler = logging.FileHandler(
|
|
170
|
+ log_file, encoding='UTF-8') # 设置日志字符集和存储路径名字
|
|
171
|
+ logging_format = logging.Formatter(
|
|
172
|
+ '[%(levelname)s] %(asctime)s %(message)s')
|
134
|
173
|
handler.setFormatter(logging_format)
|
135
|
174
|
monitor.logger.addHandler(handler)
|
136
|
175
|
|
...
|
...
|
|