示例#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
示例#2
0
from os import path
from flask import Flask
from flask_security import current_user
from flask_session import Session
from app.core import db, security, mail

import app.models as models_sounds
from .site import mod_site
import app.admin.models_security as models_security
from .admin import mod_admin

app = Flask(__name__, static_folder='static')
app.config.from_pyfile('config.py')

Session(app)
mail.init_app(app)

db.init_app(app)
db.create_all(app=app)  # app=app weil sonst applicationbound error

security.init_app(app, models_security.user_datastore)

app.register_blueprint(mod_admin, url_prefix='/admin')
app.register_blueprint(mod_site)

app.jinja_env.globals.update(config=app.config)
app.jinja_env.globals.update(current_user=current_user)
app.jinja_env.globals.update(path=path)

# seed_security()
示例#3
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