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
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()
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