Esempio n. 1
0
def create_and_setup_app(package_name, package_path=None,
                         settings_override=None,
                         register_security_blueprint=True):
    """
    Return a :class:`Flask` application instance configured with common
    functionality.

    :param str package_name: application package name
    :param str package_path: application package path
    :param dict settings_override: a dictionary of settings to override
    """
    app = create_app(package_name, package_path)

    db.init_app(app)
    mail.init_app(app)
    security.init_app(app, SQLAlchemyUserDatastore(db, User, Role),
                      register_blueprint=register_security_blueprint)

    if package_path:
        register_blueprints(app, package_name, package_path)

    # After request
    if not app.after_request_funcs.get(None):
        app.after_request_funcs[None] = []
    app.after_request_funcs[None].append(call_after_request_callbacks)

    return app
Esempio n. 2
0
def create_app(package_name, **settings):
    app = Flask(package_name, **settings)
    app.config.from_object('app:settings')

    celery.config_from_object('app.settings')
    db.init_app(app)
    print "woop"
    return app
Esempio n. 3
0
def create_app(package_name, package_path):
    app = Flask(package_name, instance_relative_config=True)
    app.config.from_object('app.settings')
    db.init_app(app)
    db.app = app
    loginManager.init_app(app)
    helpers.register_blueprints(app, package_name, package_path)
    #     celery.init_app(app)
    return app
Esempio n. 4
0
def create_app(config='dev'):
    """ Flask application factory
    :param str config: type of app to build, either "prod" or "dev"
    """
    # Create flask application
    app = Flask(__name__)
    app.config.from_object('settings')
    app.config['ENV'] = config
    app.jinja_env.trim_blocks = True

    # Debug toolbar (when debug=true)
    debug_toolbar = DebugToolbarExtension(app)
    app.config['DEBUG_TB_PROFILER_ENABLED'] = True
    app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False

    # Register Blueprints
    app.register_blueprint(views_base.base)
    app.register_blueprint(views_blog.blog)

    # Flask-Assets; bundles all css/js files in minifed file
    assets = Environment(app)
    css_all = Bundle('css/bootstrap-flatly.min.css', 'css/highlightjs.min.css', 'css/font-awesome.css', 'css/main.css',
                     filters='cssmin', output='gen/style.css')
    js_all = Bundle('js/vendor/jquery.min.js', 'js/vendor/bootstrap.min.js', 'js/vendor/showdown-gfm.min.js',
                    'js/vendor/highlight.min.js', 'js/main.js', filters='jsmin', output='gen/libs.js')
    assets.register('css_all', css_all)
    assets.register('js_all', js_all)
    if app.config['DEBUG']:
        assets.debug = True
        app.config['ASSETS_DEBUG'] = True

    # Set up Flask-User
    babel = Babel(app)
    db_adapter = SQLAlchemyAdapter(db, User)
    user_manager = UserManager(db_adapter, app)  # Init Flask-User and bind to app

    # Init the cache
    cache.init_app(app)

    Moment(app)  # moment.js
    Misaka(app, autolink=True,  # Misaka Markdown
           fenced_code=True, lax_html=True, strikethrough=True,
           superscript=True, tables=True, wrap=True)

    # Init Admin page
    admin = Admin(app, index_view=AdminMain(endpoint='admin'))
    admin.add_view(PostAdminView())
    admin.add_view(NewPostView())
    admin.add_view(ModelView(Comment, db.session))
    static_path = os.path.join(BASE_DIR, 'app', 'static')
    admin.add_view(FileAdminView(static_path, '/static/', name='Static Files'))

    # Initialize DB
    db.init_app(app)

    return app
Esempio n. 5
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
Esempio n. 6
0
def create_app():
    app = Flask(__name__)

    # Initialize configuration options
    app.config.from_object(Config)

    # Initialize global containers
    from app.core import db, bc, lm
    db.init_app(app)
    bc.init_app(app)
    lm.init_app(app)
    lm.login_view = 'bp.signin'

    print("Load blueprints")
    # Initialize app routes
    from app.core import bp
    app.register_blueprint(bp)

    return app
Esempio n. 7
0
def create_app():
    """Construct the core app object."""
    app = Flask(__name__, instance_relative_config=False)

    # Application Configuration
    app.config.from_object('configuration.Config')

    # Initialize Plugins
    db.init_app(app)

    login_manager.init_app(app)
    login_manager.login_view = 'login'

    # Initial upload with photos, set default upload size to 16 megabytes
    configure_uploads(app, photos)
    patch_request_class(app)  # set maximum file size, default is 16MB

    drop_zone.init_app(app)
    app.config['DROPZONE_UPLOAD_MULTIPLE'] = True
    app.config['DROPZONE_ALLOWED_FILE_CUSTOM'] = True
    app.config['DROPZONE_ALLOWED_FILE_TYPE'] = 'image/*'
    app.config['DROPZONE_PARALLEL_UPLOADS'] = 8

    migrate.init_app(app, db)

    with app.app_context():
        from . import routes

        @login_manager.user_loader
        def load_user(user_id):
            return User.query.filter(User.id == int(user_id)).first()

        # Register Blueprints
        app.register_blueprint(routes.main_bp)
        # app.register_blueprint(auth.auth_bp)

        return app
Esempio n. 8
0
from __future__ import unicode_literals
from flask import Flask
from app.factory import make_celery
from app.core import db, configure_app

import os
import sys
import time
import ntpath
import requests


app = Flask(__name__)
# config app
configure_app(app)

# db
db.init_app(app)

# celery
celery = make_celery(app)
Esempio n. 9
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