Ejemplo n.º 1
0
def create_app():
    #初始化项目实例
    app = Flask(__name__,
                template_folder=BASE_TEMPLATE_FOLDER,
                static_folder=os.path.join(BASE_DIR, 'frontend', 'static'))
    app.secret_key = app.config['SECRET_KEY']

    #导入配置项
    app.config.from_object(config)
    # 注册路由
    register(app)
    # 注册数据库
    db.init_app(app)  #第二课增加内容
    #注册登录组件
    login_manager.init_app(app)  #第三课增加内容
    # 将变量注册到jinja全局变量
    app.add_template_global(app.config['PROJECTNAME'], 'PROJECTNAME')

    # 钩子 在请求执行之前
    @app.before_request
    def before_request():
        print(current_user.username)
        #print('hi')

    return app
Ejemplo n.º 2
0
def create_app():
    # 初始化项目实例
    app = Flask(__name__,
                template_folder=BASE_TEMPLATE_FOLDER,
                static_folder=os.path.join(BASE_DIR, 'frontend', 'static'))
    app.secret_key = app.config['SECRET_KEY']

    # 导入配置项
    app.config.from_object(config)
    # 注册路由
    register(app)
    # 注册数据库
    db.init_app(app)  # 第二课增加内容
    # 注册登录组件
    login_manager.init_app(app)  # 第三课增加内容
    # 将变量注册到jinja全局变量
    app.add_template_global(app.config['PROJECTNAME'], 'PROJECTNAME')
    app.add_template_global(app.config['STATIC_URL'], 'STATIC_URL')

    # 钩子 在请求执行之前
    @app.before_request
    def before_request():
        pass

    @app.route("/")  # 默认主页
    def index():
        # return "Hello python!"
        return render_template("/account/login.html")

    @app.route("/index")
    def index2():
        return render_template("/account/login.html")

    return app
Ejemplo n.º 3
0
def create_app():
    app = Flask(__name__)
    app.secret_key = app.config['SECRET_KEY']

    app.config.from_object(config)
    register(app)

    @app.before_request
    def before_request():
        print('hi')

    return app
Ejemplo n.º 4
0
def create_app():

    #初始化项目实例
    app = Flask(__name__)
    # CORS(app, supports_credentials=True)
    app.secret_key = app.config['SECRET_KEY']

    #导入配置项
    app.config.from_object(config)
    # 注册路由
    register(app)

    # 钩子 在请求执行之前
    @app.before_request
    def before_request():
        pass

    # print('hi')

    return app
Ejemplo n.º 5
0
def create_app():
    # 初始化项目实例
    app = Flask(__name__, template_folder=TEMPLATE_FOLDER, static_folder=STATIC_FOLDER)
    app.secret_key = app.config['SECRET_KEY']

    # 导入配置项
    app.config.from_object(config)
    app.config.from_object(redis_config)

    log.init_app(app)
    # 注册路由
    urls.register(app)
    # 注册数据库
    db.init_app(app)
    # 注册登录组件
    login_manager.init_app(app)
    # 注册session组件
    session.init_app(app)
    # 定时任务
    scheduler.init_app(app)
    scheduler.start()
    # csrf 认证
    csrf.init_app(app)
    # 注册 swagger
    swagger.init_app(app)
    # css,js
    assets_env.init_app(app)
    assets_env.register('main_js', main_js)
    assets_env.register('main_css', main_css)

    # 将变量注册到jinja全局变量
    app.add_template_global(app.config['PROJECTNAME'], 'PROJECTNAME')
    app.add_template_global(app.config['STATIC_URL'], 'STATIC_URL')
    app.add_template_global(app.config['VERSION'], 'VERSION')

    app.BASE_DIR = BASE_DIR
    app.LOG_DIR = BASE_DIR + '/logs'

    # app.add_template_global(app.config['LOGIN_URL'] + '?cburl=' + app.config['BASE_URL'], 'LOGIN_URL')
    # app.add_template_global(app.config['LOGOUT_URL'] + '?cburl=' + app.config['BASE_URL'], 'LOGOUT_URL')

    # 钩子 在请求执行之前
    @app.before_first_request
    def before_first_request():
        import time
        from backend.models.TaskModel import RemotecmdTaskModel, InterfaceTaskModel
        from utils.command import remotecommand, doHttpRequest

        logfile = app.LOG_DIR + '/' + time.strftime('%Y%m%d', time.localtime(
            time.time())) + '/'

        if not os.path.exists(logfile):
            os.makedirs(logfile)

        tasks_remote = [x for x in RemotecmdTaskModel.query.filter(RemotecmdTaskModel.run_status == 1).all()]
        tasks_interface = [x for x in InterfaceTaskModel.query.filter(InterfaceTaskModel.run_status == 1).all()]

        if len(tasks_remote) > 0:
            for task in tasks_remote:
                # 将任务起起来
                scheduler.add_job(id=task.task_remotecmd_name,
                                  name=task.task_remotecmd_name,
                                  func=remotecommand,
                                  args=(task.task_remotecmd_host,
                                        task.task_remotecmd_port,
                                        task.task_remotecmd_username,
                                        task.task_remotecmd_password,
                                        task.task_remotecmd_cmd_value,

                                        "{0}{1}_{2}.log".format(logfile, task.task_remotecmd_name, task.id),
                                        ),
                                  trigger=task.task_remotecmd_trigger_type,

                                  weeks=int(
                                      task.task_remotecmd_trigger_value) if task.task_remotecmd_trigger_arg == 'weeks' else 0,
                                  days=int(
                                      task.task_remotecmd_trigger_value) if task.task_remotecmd_trigger_arg == 'days' else 0,
                                  hours=int(
                                      task.task_remotecmd_trigger_value) if task.task_remotecmd_trigger_arg == 'hours' else 0,
                                  minutes=int(
                                      task.task_remotecmd_trigger_value) if task.task_remotecmd_trigger_arg == 'minutes' else 0,
                                  seconds=int(
                                      task.task_remotecmd_trigger_value) if task.task_remotecmd_trigger_arg == 'seconds' else 0,

                                  )

        if len(tasks_interface) > 0:
            for task in tasks_interface:
                scheduler.add_job(id=task.task_interface_name,
                                  name=task.task_interface_name,
                                  func=doHttpRequest,
                                  args=(task.task_interface_url,
                                        task.task_interface_params,
                                        0 if task.task_interface_method == 'GET' else 1,
                                        0,
                                        "{0}{1}_{2}.log".format(logfile, task.task_interface_name, task.id),
                                        ),
                                  trigger=task.task_interface_trigger_type,

                                  weeks=int(
                                      task.task_interface_trigger_value) if task.task_interface_trigger_arg == 'weeks' else 0,
                                  days=int(
                                      task.task_interface_trigger_value) if task.task_interface_trigger_arg == 'days' else 0,
                                  hours=int(
                                      task.task_interface_trigger_value) if task.task_interface_trigger_arg == 'hours' else 0,
                                  minutes=int(
                                      task.task_interface_trigger_value) if task.task_interface_trigger_arg == 'minutes' else 0,
                                  seconds=int(
                                      task.task_interface_trigger_value) if task.task_interface_trigger_arg == 'seconds' else 0,

                                  )

    @app.errorhandler(BaseError)
    def custom_error_handler(e):
        if e.level in [BaseError.LEVEL_WARN, BaseError.LEVEL_ERROR]:
            if isinstance(e, OrmError):
                app.logger.exception('%s %s' % (e.parent_error, e))
            else:
                app.logger.exception('错误信息: %s %s' % (e.extras, e))
        response = jsonify(e.to_dict())
        response.status_code = e.status_code
        return response

    return app