Files
py12306/old_py12306/web/web.py
2019-05-14 13:21:25 +08:00

63 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
import json
import logging
from datetime import timedelta
from flask import Flask, request
from flask_jwt_extended import (
JWTManager)
from py12306.config import Config
from py12306.helpers.func import *
@singleton
class Web:
session = None
jwt = None
log = None
def __init__(self):
self.session = Flask(__name__)
self.log = logging.getLogger('werkzeug')
self.log.setLevel(logging.ERROR)
self.register_blueprint()
self.session.config['JWT_SECRET_KEY'] = 'secret' # 目前都是本地,暂不用放配置文件
self.session.config['JWT_ACCESS_TOKEN_EXPIRES'] = timedelta(seconds=60 * 60 * 24 * 7) # Token 超时时间 7 天
self.jwt = JWTManager(self.session)
def register_blueprint(self):
from py12306.web.handler.user import user
from py12306.web.handler.stat import stat
from py12306.web.handler.app import app
from py12306.web.handler.query import query
from py12306.web.handler.log import log
self.session.register_blueprint(user)
self.session.register_blueprint(stat)
self.session.register_blueprint(app)
self.session.register_blueprint(query)
self.session.register_blueprint(log)
@classmethod
def run(cls):
self = cls()
self.start()
def start(self):
if not Config().WEB_ENABLE or Config().is_slave(): return
# if Config().IS_DEBUG:
# self.run_session()
# else:
create_thread_and_run(self, 'run_session', wait=False)
def run_session(self):
debug = False
if is_main_thread():
debug = Config().IS_DEBUG
self.session.run(debug=debug, port=Config().WEB_PORT, host='0.0.0.0')
if __name__ == '__main__':
Web.run()