Exemplo n.º 1
0
def create_app(environment_name):
    app = Flask(__name__)
    app.config.from_object(config[environment_name])
    register_err_handlers(app)

    db.init_app(app)
    bootstrap.init_app(app)
    user_datastore = SQLAlchemyUserDatastore(db, User, Role)
    security.init_app(app, datastore=user_datastore)

    from app.admin import admin as admin_bp
    from app.front import front as front_bp

    app.register_blueprint(admin_bp)
    app.register_blueprint(front_bp)


    return app
Exemplo n.º 2
0
def create_app(config_file=None):
    app = Flask('app')

    AppConfig(app, config_file)

    SSLify(app)

    stream = logging.StreamHandler()
    stream.setFormatter(logging.Formatter(
        '%(name)s %(levelname)s %(asctime)s "%(message)s"'
    ))
    admin_logger = logging.getLogger('app.admin')
    admin_logger.setLevel(logging.INFO)
    admin_logger.addHandler(stream)

    db.app = app
    db.init_app(app)

    bootstrap.app = app
    bootstrap.init_app(app)

    nav.app = app
    nav.register_element('top', get_navbar)
    register_renderer(app, 'twoside', TwoSideRenderer)
    nav.init_app(app)

    login_manager.app = app
    login_manager.init_app(app)

    mail.app = app
    mail.init_app(app)

    cache.app = app
    cache.init_app(app)

    oauth.app = app
    oauth.init_app(app)
    bind_sqlalchemy(oauth, db.session,
                    user=User,
                    client=oauth2.Client,
                    token=oauth2.Token,
                    grant=oauth2.Grant,
                    current_user=lambda: current_user)

    if not app.debug:
        sentry.app = app
        sentry.init_app(app)

    admin.app = app
    admin.init_app(app)
    admin.add_view(AdAdminView(Ad, db.session))
    admin.add_view(LinkAdminView(Link, db.session))
    admin.add_view(trial.TrialEmailAdminView(trial.TrialEmail, db.session))

    #celery.app = app
    #celery.init_app(app)

    user_manager.init_app(
        app,
        db_adapter=SQLAlchemyAdapter(db, User, UserInvitationClass=UserInvitation),
        login_manager=login_manager
    )

    gravatar.app = app
    gravatar.init_app(app)

    api_manager.app = app
    api_manager.init_app(app)

    app.register_blueprint(trial.bp, url_prefix='/trial')
    app.register_blueprint(oauth2.view.bp, url_prefix='/oauth')
    app.register_blueprint(social.bp, url_prefix='/social')
    app.register_blueprint(dashboard.bp, url_prefix='/dashboard')
    app.register_blueprint(share.bp, url_prefix='/share')
    app.register_blueprint(web.bp)

    for jinja_filter in FILTERS:
        app.jinja_env.filters[jinja_filter] = FILTERS[jinja_filter]
    for jinja_test in TESTS:
        app.jinja_env.tests[jinja_test] = TESTS[jinja_test]

    return app