Exemplo n.º 1
0
def register_extensions(app):
    """第三方插件集装箱"""
    cache.init_app(app)
    # mongo.init_app(app)    #将mongodb注册到app中
    celery.init_app(app)
    cors.init_app(app, supports_credentials=True)     # 配置全局跨域路由
    mail.init_app(app)
Exemplo n.º 2
0
def register_extensions(app):
    """
    Init extension
    :param app:
    :return:
    """
    client.app = app
    client.init_app(app)
    celery.init_app(app)
    jwt.init_app(app)
    if os.environ.get('FLASK_DEBUG') == '0':
        # logger
        logger = logging.getLogger('api')
        logger.setLevel(logging.ERROR)
        logger.addHandler(app_log_handler)

        @app.after_request
        def after_request(response):
            # This IF avoids the duplication of registry in the log,
            # since that 500 is already logged via @app.errorhandler.
            if response.status_code != 500:
                ts = strftime('[%Y-%b-%d %H:%M]')
                logger.error('%s %s %s %s %s %s', ts, request.remote_addr,
                             request.method, request.scheme, request.full_path,
                             response.status)
            return response

        @app.errorhandler(Exception)
        def exceptions(e):
            ts = strftime('[%Y-%b-%d %H:%M]')
            tb = traceback.format_exc()
            logger.error('%s %s %s %s %s 5xx INTERNAL SERVER ERROR\n%s', ts,
                         request.remote_addr, request.method, request.scheme,
                         request.full_path, tb)
            return "Internal Server Error", 500
Exemplo n.º 3
0
def _init_extensions(app):
    celery.init_app(app)

    class ContextQueueOnce(QueueOnce):
        def __call__(self, *args, **kwargs):
            with app.app_context():
                return super(ContextQueueOnce, self).__call__(*args, **kwargs)
    celery.QueueOnce = ContextQueueOnce
    db.init_app(app)
    jwt.init_app(app)
Exemplo n.º 4
0
def create_app(object_name):
    app = Flask(__name__)

    app.config.from_object("app.configs.%s.Config" % object_name)

    app.logger.setLevel(logging.INFO)
    db.init_app(app)
    migrate.init_app(app, db)
    imgs.init_app(app)
    register_commands(app)
    register_shell_context(app)
    celery.init_app(app)
    redis.init_app(app)

    return app
Exemplo n.º 5
0
def create_app(config_name='dev'):
    app = Flask(__name__)
    # sifn = show if none
    app.jinja_env.filters['sifn'] = lambda it: u'无' if not it else it
    app.jinja_env.filters['with_site'] = lambda title: title + ' - pkyx'

    # 导入配置
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    # 初始化flask_admin
    # admin.init_app(app)
    # admin.add_view(FileView(os.path.join(os.path.dirname(__file__), 'static'), '/static/'))

    # 初始化MongoDB
    mongo.init_app(app)
    with app.app_context():
        mongo.db['items'].create_index('title', background=True)
    # 初始化Celery
    celery.init_app(app)

    # 初始化Flask-mail
    mail.init_app(app)

    # 初始化Flask-Login
    login_manager.init_app(app)
    login_manager.login_view = 'main.index'
    login_manager.login_message = u'请先登录或注册'

    @login_manager.user_loader
    def load_user(user_id):
        user = None
        db_user = mongo.db.users.find_one({"_id": bson_obj_id(user_id)})
        if db_user is not None:
            user_id = db_user.pop('_id')
            user = User(user_id, extras=db_user)
        return user

    from app.main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    from app.users import users as users_blueprint
    app.register_blueprint(users_blueprint)

    from app.api import api as api_blueprint
    app.register_blueprint(api_blueprint)

    return app
Exemplo n.º 6
0
def create_app(config_name='dev'):
    app = Flask(__name__)
    # sifn = show if none
    app.jinja_env.filters['sifn'] = lambda it: '无' if not it else it
    app.jinja_env.filters['with_site'] = lambda title: title + ' - pkyx'
    # 导入配置
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)
    # 初始化flask_admin
    admin.init_app(app)
    admin.add_view(FileView(os.path.join(os.path.dirname(__file__), 'static'), '/static/'))
    # 初始化MongoDB
    mongo.init_app(app)
    with app.app_context():
        mongo.db['items'].create_index('title', background=True)
    # 初始化Celery
    celery.init_app(app)
    # 初始化Flask-mail
    mail.init_app(app)
    # 初始化Flask-Login
    login_manager.init_app(app)
    login_manager.login_view = 'main.register'
    login_manager.login_message = '请先登录或注册'

    @login_manager.user_loader
    def load_user(user_id):
        user = None
        db_user = mongo.db.users.find_one({"_id": bson_obj_id(user_id)})
        if db_user is not None:
            user_id = db_user.pop('_id')
            user = User(user_id, extras=db_user)
        return user

    # @login_manager.unauthorized_handler
    # def unauthorized():
    #   pass


    from app.main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    from app.users import users as users_blueprint
    app.register_blueprint(users_blueprint)

    from app.api import api as api_blueprint
    app.register_blueprint(api_blueprint)

    return app
Exemplo n.º 7
0
def init_extensions(application):
    # 配置Celery
    celery.config_from_object('app.config.setting', force=True)
    celery.autodiscover_tasks(['app.task.workers'])
    celery.init_app(application)

    # 数据库连接初始化
    db.init_app(application)
    with application.app_context():
        db.create_all()

    # 配置cache
    cache.init_app(app=application)

    # 配置文件上传
    from app.api.v1.file_uploads import avatar
    configure_uploads(application, (avatar,))

    # JWT Token身份验证初始化
    jwt.init_app(application)
Exemplo n.º 8
0
def create_app(config_obj, no_sql=False):
    app = Flask(__name__, template_folder=TEMPLATE_FOLDER, static_folder=STATIC_FOLDER)
    config_dict = dict([(k, getattr(config_obj, k)) for k in dir(config_obj) if not k.startswith('_')])
    app.config.update(config_dict)

    # Import DB models
    with app.app_context():
        for module in app.config.get('DB_MODELS_IMPORTS', list()):
            import_module(module)
    # Setup redirects and register blueprints
    for bp in all_blueprints:
        import_module(bp.import_name)
        app.register_blueprint(bp)

    # Initialize extensions/add-ons/plugins
    db.init_app(app)
    celery.init_app(app)

    # Activate middleware

    # Return the application instance.
    return app
Exemplo n.º 9
0
def register_extensions(app):
    db.init_app(app)
    celery.init_app(app)
    bootstrap.init_app(app)
    moment.init_app(app)