예제 #1
0
def register_extensions(app: flask.Flask) -> None:
    app.secret_key = APP_SESSION_SECRET

    db.init_app(app)
    migrate.init_app(app, db)
    cache.init_app(app, config={'CACHE_TYPE': CACHE_TYPE, 'CACHE_THRESHOLD': CACHE_THRESHOLD})
    limiter.init_app(app)
    session.init_app(app)
    oauth.init_app(app)

    trace_flask(app, operation_name=get_operation_name, skip_span=request_skip_span)
    trace_sqlalchemy(skip_span=sqlalchemy_skip_span)
예제 #2
0
def register_extensions(app: flask.Flask) -> None:
    app.secret_key = APP_SESSION_SECRET

    db.init_app(app)
    migrate.init_app(app, db)
    cache.init_app(app,
                   config={
                       'CACHE_TYPE': CACHE_TYPE,
                       'CACHE_THRESHOLD': CACHE_THRESHOLD
                   })
    limiter.init_app(app)
    session.init_app(app)
    oauth.init_app(app)
예제 #3
0
def register_extensions(app):
    bootstrap.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    login_manager.login_view = 'web.login'
    login_manager.login_message_category = 'warning'
    avatars.init_app(app)
    pagedown.init_app(app)
    #cache.init_app(app)
    mail.init_app(app)
    moment.init_app(app)
    csrf.init_app(app)
    socketio.init_app(app)
    oauth.init_app(app)
예제 #4
0
def create_app():
    app = Flask(__name__)
    api = Api(app)
    jwt.init_app(app)
    app.config.from_object(Config)
    db.init_app(app)
    ma.init_app(app)

    api.add_resource(UserRegister, '/register')
    api.add_resource(User, '/user/<int:user_id>')
    api.add_resource(UserLogin, '/login')
    # api.add_resource(GithubLogin, '/login/github')
    api.add_resource(SetPassword, '/user/password')
    api.add_resource(OauthResource, '/login/<provider_name>')
    api.add_resource(GithubAuthorize, '/login/github/authorized', endpoint='github.authorize')

    oauth.init_app(app)

    return app
예제 #5
0
def create_app(object_name, env='prod'):
    """
    An flask application factory, as explained here:
    http://flask.pocoo.org/docs/patterns/appfactories/

    Arguments:
        object_name: the python path of the config object, e.g. app.settings.ProdConfig

        env: The name of the current environment, e.g. prod or dev
    """
    app = Flask(__name__, static_url_path='')

    app.config.from_object(object_name)
    app.config['ENV'] = env

    # templates and statics
    app.template_folder = app.config['TEMPLATE_FOLDER']
    app.static_folder = app.config['STATIC_FOLDER']

    # initialize the cache
    cache.init_app(app)

    # initialize the debug tool bar
    debug_toolbar.init_app(app)

    # CSRF protection
    csrf.init_app(app)

    # Oauthlib
    oauth.init_app(app)

    # initialize SQLAlchemy
    db.init_app(app)

    # Authentication
    login_manager.init_app(app)

    # Mailgun
    mailgun.init_app(app)

    # Register blueprints
    app.register_blueprint(main)
    app.register_blueprint(auth)
    app.register_blueprint(profile)
    app.register_blueprint(authorize)

    # Api

    # Extneral

    # Import custom template filters
    app.register_blueprint(tpl_filter)

    # Enable error logging
    # if app.config['ENV'] == 'prod':
    #     file_handler = RotatingFileHandler('app.log', maxBytes=1024 * 1024 * 100, backupCount=20)
    #     formatter = logging.Formatter( "%(asctime)s | %(pathname)s:%(lineno)d | %(funcName)s | %(levelname)s | %(message)s ")
    #     file_handler.setFormatter(formatter)
    #     app.logger.addHandler(file_handler)

    # Language
    babel.init_app(app)

    # @babel.localeselector
    # def get_locale():
    #     return g.locale

    # # Set lang
    # @app.before_request
    # def before_request():
    #     lang_cookie = request.cookies.get('locale')
    #     locale = lang_cookie if lang_cookie else 'en'

    #     if not lang_cookie:
    #         for lang in request.accept_languages.values():
    #             if lang[:2] in ['de', 'en']:
    #                 locale = lang[:2]
    #                 break

    #     g.locale = locale

    return app
예제 #6
0
def register_extensions(app):
    db.init_app(app)
    oauth.init_app(app)