Example #1
0
def register_extensions(app):

    # Flask-SQLAlchemy
    db.init_app(app)
    db.app = app

    # Flask-Redis
    # rd.init_app(app)

    # Flask-Migrate
    # migrate.init_app(app, db)

    # Flask-Mail
    mail.init_app(app)

    # Flask-Cache
    # cache.init_app(app)

    # Flask-Login
    from models import AnonymousUser

    login_manager.session_protection = 'basic'
    login_manager.login_view = 'blog.articles'
    login_manager.login_message = 'please login first~'
    login_manager.anonymous_user = AnonymousUser
    login_manager.init_app(app)
Example #2
0
def create_app():
    app = Flask(__name__, static_folder='static', template_folder='templates')
    app.config.from_object("config.Config")

    from main import main
    app.register_blueprint(main)

    from api.misc import misc_api
    app.register_blueprint(misc_api)

    from api.corrections import corrections_api
    app.register_blueprint(corrections_api)

    from api.users import users_api
    app.register_blueprint(users_api)

    from api.archive import archive_api
    app.register_blueprint(archive_api)

    from auth import auth_blueprint
    app.register_blueprint(auth_blueprint)

    from extensions import mail
    mail.init_app(app)

    return app
Example #3
0
def configure_extensions(app):
    db.app = app
    db.init_app(app)
    mail.init_app(app)
    cache.init_app(app)
    celery.conf.update(app.config)
    rd.init_app(app)
Example #4
0
def init_extensions(app):
    db.init_app(app)
    db.app = app
    db.metadata.naming_convention = {
        "ix": 'ix_%(column_0_label)s',
        "uq": "uq_%(table_name)s_%(column_0_name)s",
        "ck": "ck_%(table_name)s_%(column_0_name)s",
        "fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s",
        "pk": "pk_%(table_name)s"
    }
    # set constraint naming convention to sensible default, per
    # http://docs.sqlalchemy.org/en/rel_0_9/core/constraints.html#configuring-constraint-naming-conventions

    assets.init_app(app)
    assets.app = app
    babel.init_app(app)
    cache.init_app(app)
    csrf.init_app(app)
    mail.init_app(app)
    login_manager.init_app(app)
    rq.init_app(app)
    app.rq = rq
    store.init_app(app)
    rest.init_app(app, flask_sqlalchemy_db=db,
                  preprocessors=restless_preprocessors)
    rest.app = app

    limiter.init_app(app)
    for handler in app.logger.handlers:
        limiter.logger.addHandler(handler)

    if app.config.get('DEBUG'):
        from flask_debugtoolbar import DebugToolbarExtension
        DebugToolbarExtension(app)
        app.debug = True
Example #5
0
def register_extensions(app):
    db.init_app(app)
    bootstrap.init_app(app)
    moment.init_app(app)
    whooshee.init_app(app)
    loginmanager.init_app(app)
    mail.init_app(app)
Example #6
0
def init_extensions(app):
    # Init database
    from extensions import db
    db.init_app(app)

    # Init migration
    from extensions import migrate
    migrate.init_app(app, db)

    # Init bcrypt
    from extensions import bcrypt
    bcrypt.init_app(app)

    # Init Login manager
    from extensions import login_mgr
    login_mgr.login_view = 'auth.login'
    login_mgr.init_app(app)

    # Init mail
    from extensions import mail
    mail.init_app(app)

    # Init jwt
    from extensions import jwt
    jwt.init_app(app)
def create_app(config_file):
    app = Flask(__name__)
    app.config.from_object(config_file)
    app.config.update(
        SESSION_COOKIE_SECURE=True,
        SESSION_COOKIE_HTTPONLY=True,
        SESSION_COOKIE_SAMESITE='Lax',
    )
    csrf = CSRFProtect(app)
    csrf = CSRFProtect()
    app.config['SECRET_KEY'] = os.environ.get("CSRF_KEY_SECRET")
    app.secret_key = b'\x06\x82\x96n\xfa\xbb(L\x97n\xb8.c\\y\x8a'
    login_manager.init_app(app)
    csrf.init_app(app)
    mail.init_app(app)
    app.register_blueprint(router, url='/router')
    css = Blueprint(
        'css',
        __name__,
        template_folder='templates',
        static_folder='static/css',
        static_url_path='/static/css'
    )
    js = Blueprint(
        'js',
        __name__,
        template_folder='templates',
        static_folder='static/js',
        static_url_path='/static/js'
    )
    app.register_blueprint(js)

    return app
Example #8
0
def register_extensions(app):
    db.init_app(app)
    migrate = Migrate(app, db)
    jwt.init_app(app)
    mail.init_app(app)
    cache.init_app(app)
    limiter.init_app(app)
Example #9
0
def configure_extensions(app):
    db.app = app
    celery.init_app(app)
    db.init_app(app)
    mail.init_app(app)
    cache.init_app(app)
    celery.init_app(app)
Example #10
0
def register_extensions(app):
    db.init_app(app)
    mail.init_app(app)
    debug_toolbar.init_app(app)
    migrate.init_app(app, db)
    api.init_app(app)
    return None
Example #11
0
def init_extensions(app):
    db.init_app(app)
    db.app = app
    db.metadata.naming_convention = {
        "ix": 'ix_%(column_0_label)s',
        "uq": "uq_%(table_name)s_%(column_0_name)s",
        "ck": "ck_%(table_name)s_%(column_0_name)s",
        "fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s",
        "pk": "pk_%(table_name)s"
    }
    # set constraint naming convention to sensible default, per
    # http://docs.sqlalchemy.org/en/rel_0_9/core/constraints.html#configuring-constraint-naming-conventions

    assets.init_app(app)
    assets.app = app
    babel.init_app(app)
    cache.init_app(app)
    csrf.init_app(app)
    mail.init_app(app)
    login_manager.init_app(app)
    store.init_app(app)
    rest.init_app(app,
                  flask_sqlalchemy_db=db,
                  preprocessors=restless_preprocessors)
    rest.app = app

    if app.config.get('DEBUG'):
        from flask_debugtoolbar import DebugToolbarExtension
        DebugToolbarExtension(app)
Example #12
0
def configure_extensions(app):
    # I18N
    babel.init_app(app)

    # Database
    db.init_app(app)

    # CouchDB
    couchdbmanager.setup(app)
    couchdbmanager.sync(app)

    # Login
    login_manager.init_app(app)
    login_manager.login_view = "authentification.login"

    # Roles
    principal.init_app(app)

    # Mail
    mail.init_app(app)

    # Plugins list global
    plugin_manager.init_plugin_manager(app.root_path + "/plugins", app)
    plugin_manager.activate_plugins()
    plugin_manager.setup_plugins()
Example #13
0
def register_extensions(app):
    bootstrap.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    csrf.init_app(app)
    ckeditor.init_app(app)
    mail.init_app(app)
    moment.init_app(app)
Example #14
0
def extensions(app):

    bcrypt.init_app(app)
    login.init_app(app)
    db.init_app(app)
    mail.init_app(app)

    return None
def extensions(our_app):

    mail.init_app(our_app)
    csrf.init_app(our_app)
    login_manager.init_app(our_app)
    login_manager.login_view = 'user.login'
    login_manager.login_message_category = 'info'
    return None
Example #16
0
def register_extensions(app):
    db.init_app(app)
    bcrypt.init_app(app)
    lm.init_app(app)
    lm.login_view = 'auth.login'
    toolbar.init_app(app)
    mail.init_app(app)
    migrate.init_app(app, db)
    return None
Example #17
0
def create_app(config=None):
    new_app = Flask(__name__,
                    template_folder='../react_app/build',
                    static_folder='../react_app/build/static')
    new_app.config.from_object(config)

    with new_app.app_context():
        jwt.init_app(new_app)
        bcrypt.init_app(new_app)
        cors.init_app(new_app)
        mysql.init_app(new_app)
        mail.init_app(new_app)

    from model import temp_blacklist

    @jwt.token_in_blacklist_loader
    def check_if_token_in_blacklist(decrypted_token):
        return decrypted_token['jti'] in temp_blacklist

    # Let react handle routing
    @new_app.route('/', defaults={'path': ''})
    @new_app.route('/<path:path>')
    def serve(path):
        if path and os.path.exists(safe_join(new_app.template_folder, path)):
            return send_from_directory(new_app.template_folder, path)
        else:
            return send_from_directory(new_app.template_folder, 'index.html')

    from resources.authentication import (UserRegistration, UserLogin,
                                          TokenRefresh, UnsetToken, AdminLogin,
                                          AdminRegister)
    from resources.user import GetUserInfo, UpdateUserInfo
    from resources.products import (TrackProduct, NewComments, GetComments,
                                    GetSpecificProduct)
    from resources.admin import Announcement

    api.add_resource(UserRegistration, '/register')
    api.add_resource(UserLogin, '/login')
    api.add_resource(TokenRefresh, '/refresh')
    api.add_resource(UnsetToken, '/revoke')
    api.add_resource(GetUserInfo, '/user')
    api.add_resource(UpdateUserInfo, '/user/<string:option>')
    api.add_resource(TrackProduct, '/product')
    api.add_resource(GetSpecificProduct,
                     '/product/<string:retailer>/<string:pid>')
    api.add_resource(NewComments, '/comment')
    api.add_resource(GetComments,
                     '/comment/<string:retailer>/<string:prod_id>')
    api.add_resource(AdminLogin, '/admin-login')
    api.add_resource(AdminRegister, '/admin-register')
    api.add_resource(Announcement, '/announcement')

    api_bp = Blueprint('api', __name__)
    api.init_app(api_bp)
    new_app.register_blueprint(api_bp, url_prefix='/api')
    return new_app
Example #18
0
def extensions(app):
    """
    Register 0 or more extensions (mutates the app passed in).

    :param app: Flask application instance
    :return: None
    """
    mail.init_app(app)

    return None
Example #19
0
def register_extensions(app):
    bootstrap.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    mail.init_app(app)
    dropzone.init_app(app)
    moment.init_app(app)
    whooshee.init_app(app)
    avatars.init_app(app)
    csrf.init_app(app)
Example #20
0
def register_extensions(app):
    cache.init_app(app)
    db.init_app(app)
    admin.init_app(app)
    register_admin_views(admin)
    user_datastore = SQLAlchemyUserDatastore(db, User, Role)
    security = Security(app, user_datastore, confirm_register_form=ExtendedRegisterForm)
    mail.init_app(app)
    debug_toolbar.init_app(app)

    return None
Example #21
0
def register_extensions(app):
    cache.init_app(app)
    db.init_app(app)
    admin.init_app(app)
    register_admin_views(admin)
    user_datastore = MongoEngineUserDatastore(db, User, Role)
    security = Security(app, user_datastore, confirm_register_form=ExtendedRegisterForm)
    mail.init_app(app)
    debug_toolbar.init_app(app)

    return None
Example #22
0
def create_app(script_info=None):

    app = Flask(__name__)

    load_dotenv(".env", verbose=True)
    app_settings = os.environ.get("APP_SETTINGS")
    if not app_settings:
        raise ValueError(
            'APP_SETTINGS environment variable is not set. Aborting.')
    app.config.from_object(app_settings)

    # Migration purposes
    from models import user, remaining_employee, company, address  # NOQA

    jwt.init_app(app)
    db.init_app(app)
    api.init_app(app)
    ma.init_app(app)
    migrate.init_app(app, db)
    init_celery(app)
    mail.init_app(app)

    api.add_resource(UserLogin, "/login")
    api.add_resource(UserRegister, "/register")
    api.add_resource(UserRegister, "/register/<string:confirmation_token>")
    api.add_resource(User, "/user")
    api.add_resource(UserList, "/users")
    api.add_resource(UserInvite, "/invite")

    @app.route('/ping')
    def pong():
        return 'pong'

    @api.errorhandler(Unauthorized)
    def unauthorized_page(error):
        return {"message": "401, change this on prod."}, 401

    @api.errorhandler(Forbidden)
    def forbidden_page(error):
        return {"message": "403, change this on prod."}, 403

    @api.errorhandler(NotFound)
    def page_not_found(error):
        return {"message": "404, change this on prod."}, 404

    @api.errorhandler(MethodNotAllowed)
    def method_not_allowed(error):
        return {"message": "405, change this on prod."}, 405

    @api.errorhandler(InternalServerError)
    def server_error_page(error):
        return {"message": "500, change this on prod."}, 500

    return app
Example #23
0
def configure_extensions(app):
    # setup SQLAlchemy
    db.init_app(app)
    # db.drop_all(app=app)
    db.create_all(app=app)
    from dummy_data import create_test_data
    # create_test_data(app)

    mail.init_app(app)

    bcrypt.init_app(app)
Example #24
0
def create_app(app_config):
    app = Flask(__name__)
    app.config.from_object(app_config)

    __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__)))
    with open(os.path.join(__location__, 'secrets.json')) as secrets_file:
        secrets = json.load(secrets_file)
        app.secret_key = secrets.get('app_secret')
        app_config.SECRET_KEY = app.secret_key

    login_manager.login_view = 'login.show'

    admin.add_view(AdminModelView(Challenge, db.session))
    admin.add_view(AdminModelView(Game, db.session))
    admin.add_view(AdminModelView(MarathonInfo, db.session))
    admin.add_view(AdminModelView(Prize, db.session))
    admin.add_view(AdminModelView(Interview, db.session))
    admin.add_view(AdminModelView(ScheduleEntry, db.session))

    with open(os.path.join(__location__, 'secrets.json')) as secrets_file:
        secrets = json.load(secrets_file)
        app.config.update(
            MAIL_SERVER='smtp.gmail.com',
            MAIL_PORT=465,
            MAIL_USERNAME='******',
            MAIL_DEFAULT_SENDER='*****@*****.**',
            MAIL_PASSWORD=secrets.get("email_password"),
            MAIL_USE_SSL=True,
            MAIL_USE_TLS=False
        )

    login_manager.init_app(app)
    admin.init_app(app)
    mail.init_app(app)
    register_routes(app)

    @app.errorhandler(404)
    def page_not_found(e):
        return render_template('404.tmpl'), 404

    @login_manager.user_loader
    def load_user(id):
        return db.session.query(User).filter_by(id=id).first()

    @app.context_processor
    def inject_marathon_info():
        marathon_info = getattr(g, "marathon_info", None)
        if not marathon_info:
            marathon_info = g.marathon_info = db.session.query(MarathonInfo).first()
        current_game = db.session.query(Game).filter_by(id=marathon_info.current_game_id).first()
        return dict(marathon_info=marathon_info, current_game=current_game)

    return app
Example #25
0
def create_app(config_class=Config):
    app = Flask(__name__)
    app.config.from_object(config_class)

    db.init_app(app)
    migrate.init_app(app, db)
    login.init_app(app)
    mail.init_app(app)
    bootstrap.init_app(app)
    moment.init_app(app)
    celery.init_app(app)

    from app.errors import bp as errors_bp
    app.register_blueprint(errors_bp)

    from app.auth import bp as auth_bp
    app.register_blueprint(auth_bp, url_prefix='/auth')

    from app.main import bp as main_bp
    app.register_blueprint(main_bp)

    from app.scraping import bp as scraping_bp
    from app.scraping.scraper import Scraper
    from app.scraping import tasks

    app.register_blueprint(scraping_bp, url_prefix='/scraping')
    app.scrapers = {
        "rechem": tasks.rechem_routine_task,
        "test_task": tasks.test_task
    }

    if not app.debug and not app.testing:
        if app.config['LOG_TO_STDOUT']:
            stream_handler = logging.StreamHandler()
            stream_handler.setLevel(logging.INFO)
            app.logger.addHandler(stream_handler)
        else:
            if not os.path.exists('logs'):
                os.mkdir('logs')
            file_handler = RotatingFileHandler('logs/DNMS.log',
                                               maxBytes=10240,
                                               backupCount=10)
            file_handler.setFormatter(
                logging.Formatter('%(asctime)s %(levelname)s: %(message)s '
                                  '[in %(pathname)s:%(lineno)d]'))
            file_handler.setLevel(logging.INFO)
            app.logger.addHandler(file_handler)

            app.logger.setLevel(logging.INFO)
            app.logger.info('DNMS startup')

    return app
Example #26
0
def configure_extensions(app):
    db.init_app(app)
    # login_manager.refresh_view = 'user.reauth'
    login_manager.init_app(app)

    @login_manager.user_loader
    def user_loader(user_email):
        return User.query.filter_by(email=user_email).first()

    login_manager.login_view = 'user.signin'
    login_manager.login_message_category = "info"
    mail.init_app(app)
    bcrypt.init_app(app)
Example #27
0
def configure_extensions(app):

    configure_assets(app)
    bcrypt.init_app(app)
    babel.init_app(app)
    cache.init_app(app)
    celery = Celery(app)
    mail.init_app(app)
    mongodb.init_app(app)
    sqldb.init_app(app)

    if app.debug:
        debugtoolbar = DebugToolbarExtension(app)
Example #28
0
def register_extensions(app):
    from extensions import security, mail, migrate, admin, ckeditor
    db.init_app(app)
    security.init_app(app, user_datastore, confirm_register_form=ExtendedRegisterForm)
    mail.init_app(app)
    md = Markdown(app, extensions=['fenced_code', 'tables'])
    # migrate.init_app(app, db)
    # Add Flask-Admin views for Users and Roles
    admin.init_app(app)
    ckeditor.init_app(app)
    admin.add_view(UserAdmin(User, db.session))
    admin.add_view(RoleAdmin(Role, db.session))
    admin.add_view(PostAdmin(Post, db.session))
Example #29
0
def create_app(env='dev'):
    app = Flask(__name__)
    app.config.from_object(get_config(env))
    db.init_app(app)
    mail.init_app(app)

    app.register_blueprint(user_blueprint)
    app.register_blueprint(book_blueprint)
    app.register_blueprint(library_blueprint)
    app.register_blueprint(home_page)
    db.create_all(app=app)
    migrate.init_app(app, db)
    return app
Example #30
0
def extensions(app):
    """
    Register 0 or more extensions (mutates the app passed in).

    :param app: Flask application instance
    :return: None
    """
    debug_toolbar.init_app(app)
    mail.init_app(app)
    csrf.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)

    return None
Example #31
0
def init_extensions(app):
    db.init_app(app)
    db.app = app
    db.metadata.naming_convention = {
        "ix": 'ix_%(column_0_label)s',
        "uq": "uq_%(table_name)s_%(column_0_name)s",
        "ck": "ck_%(table_name)s_%(column_0_name)s",
        "fk": "fk_%(table_name)s_%(column_0_name)s_%(referred_table_name)s",
        "pk": "pk_%(table_name)s"
    }
    # set constraint naming convention to sensible default, per
    # http://docs.sqlalchemy.org/en/rel_0_9/core/constraints.html#configuring-constraint-naming-conventions

    assets.init_app(app)
    assets.app = app
    babel.init_app(app)
    cache.init_app(app)
    csrf.init_app(app)
    mail.init_app(app)
    login_manager.init_app(app)
    rq.init_app(app)
    app.rq = rq
    store.init_app(app)
    rest.init_app(app,
                  flask_sqlalchemy_db=db,
                  preprocessors=restless_preprocessors)
    rest.app = app

    limiter.init_app(app)
    for handler in app.logger.handlers:
        limiter.logger.addHandler(handler)

    # stable list of admin phone numbers, cached in memory to avoid db hit for each call
    # disable in testing
    if app.config.get('TESTING', False):
        app.ADMIN_PHONES_LIST = []
    else:
        try:
            app.ADMIN_PHONES_LIST = filter(bool, [
                str(u.phone.national_number) if u.phone else None
                for u in User.query.all()
            ])
        except sqlalchemy.exc.SQLAlchemyError:
            # this may throw an error when creating the database from scratch
            pass

    if app.config.get('DEBUG'):
        from flask_debugtoolbar import DebugToolbarExtension
        DebugToolbarExtension(app)
        app.debug = True
Example #32
0
def configure_extensions(app):
    # flask-mongoengine
    db.init_app(app)
    app.session_interface = MongoEngineSessionInterface(db)
    # flask-mail
    mail.init_app(app)

    # flask-babel
    babel.init_app(app)

    # Bcrypt for hashing passwords
    bcrypt.init_app(app)

    # the Gravatar service
    gravatar.init_app(app)

    # Markdown
    md.init_app(app)

    # Caching
    cache.init_app(app)

    # Debug Toolbar
    if app.debug:
        from flask_debugtoolbar import DebugToolbarExtension
        DebugToolbarExtension(app)

    @babel.localeselector
    def get_locale():
        """
        Get the current request locale.

        returns String

        """
        if not hasattr(g, 'lang'):
            g.lang = 'en'
        accept_languages = app.config.get('ACCEPT_LANGUAGES')
        return g.lang or request.accept_languages.best_match(accept_languages)

    # flask-login
    login_manager.login_view = 'frontend.login'
    login_manager.refresh_view = 'frontend.reauth'

    @login_manager.user_loader
    def load_user(user_id):
        return User.objects(id=user_id).first()

    login_manager.setup_app(app)
Example #33
0
def configure_extensions(app):
    # flask-mongoengine
    db.init_app(app)
    app.session_interface = MongoEngineSessionInterface(db)
    # flask-mail
    mail.init_app(app)

    # flask-babel
    babel.init_app(app)

    # Bcrypt for hashing passwords
    bcrypt.init_app(app)

    # the Gravatar service
    gravatar.init_app(app)

    # Markdown
    md.init_app(app)

    # Caching
    cache.init_app(app)

    # Debug Toolbar
    if app.debug:
        from flask_debugtoolbar import DebugToolbarExtension
        DebugToolbarExtension(app)

    @babel.localeselector
    def get_locale():
        """
        Get the current request locale.

        returns String

        """
        if not hasattr(g, 'lang'):
            g.lang = 'en'
        accept_languages = app.config.get('ACCEPT_LANGUAGES')
        return g.lang or request.accept_languages.best_match(accept_languages)

    # flask-login
    login_manager.login_view = 'frontend.login'
    login_manager.refresh_view = 'frontend.reauth'

    @login_manager.user_loader
    def load_user(user_id):
        return User.objects(id=user_id).first()

    login_manager.setup_app(app)
Example #34
0
def configure_extensions(app):

    from extensions import cache, db, mail, Login 

    # initialize mail
    mail = mail.init_app(app)

    # initialize cache
    cache = cache.init_app(app)

    # initialize database
    db.init_app(app)
    app.logger.info("Database initialized.")
    db.app = app
    db.metadata.bind = db.get_engine(app)
    db.metadata.reflect()
    app.logger.info("Database tables reflected.")
    from models import User
    db.create_all(bind=['users'])

    # login
    Login.manager.setup_app(app)
    @Login.manager.user_loader
    def load_user(userid):
        return User.query.get(userid)

    @Login.manager.token_loader
    def load_token(token):
        return User.query.filter(User.passkey == token).first()
Example #35
0
def create_app(config_file='app_config.py'):
    app = Flask(__name__)

    app.config.from_pyfile(config_file)

    ckeditor.init_app(app)
    bootstrap.init_app(app)
    mail.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    search.init_app(app)
    gravatar.init_app(app)
    csrf_protection.init_app(app)
    flask_api.init_app(app)

    @login_manager.user_loader
    def load_user(user_id):
        requested_user = User.query.get(user_id)
        return requested_user

    app.register_blueprint(home)
    app.register_blueprint(post)
    app.register_blueprint(comment)
    app.register_blueprint(search_routing)
    app.register_blueprint(about_routing)
    app.register_blueprint(verification)
    app.register_blueprint(user_operations)
    app.register_blueprint(api)
    app.register_blueprint(contact_routing)
    app.register_blueprint(notification_routing)
    app.register_blueprint(reply)
    app.register_blueprint(website_settings)
    app.register_blueprint(login_system)
    app.register_blueprint(newsletter)
    app.register_blueprint(twitter_blueprint)
    app.register_blueprint(oauth_routing)
    app.register_blueprint(github_blueprint)
    app.register_blueprint(google_blueprint)

    app.register_error_handler(400, bad_request)
    app.register_error_handler(403, forbidden)
    app.register_error_handler(404, not_found)
    app.register_error_handler(500, internal_error)
    app.register_error_handler(401, unauthorized)
    return app
Example #36
0
    def register_extensions(self):
        cache.init_app(self)
        db.init_app(self)
        user_datastore = SQLAlchemyUserDatastore(db, User, Role)
        security = Security(self, user_datastore, register_form=ExtendedRegisterForm)
        mail.init_app(self)
        debug_toolbar.init_app(self)
        migrate.init_app(self, db)
        admin.init_app(self)

        @security.context_processor
        def security_context_processor():
            return dict(
                admin_base_template=admin.base_template,
                admin_view=admin.index_view,
                # h=admin_helpers,
                get_url=url_for
            )
Example #37
0
def create_app():
    application = Flask(__name__)
    application.config.update(settings)

    mail.init_app(application)
    mongo.init_app(application)
    cache.init_app(application)
    jwt.init_app(application)
    limiter.init_app(application)

    for bp in http_blueprints:
        import_module(bp.import_name)
        application.register_blueprint(bp)

    application.cli.add_command(populate_users_command)
    application.cli.add_command(populate_transactions_command)

    return application
Example #38
0
def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    bootstrap.init_app(app)
    mail.init_app(app)
    moment.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    celery.config_from_object(app.config)

    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    from .auth import auth as auth_blueprint
    app.register_blueprint(auth_blueprint, url_prefix='/auth')

    return app
Example #39
0
def create_app(config_name):
    app = Flask(__name__)
    app.config.from_object(config[config_name])
    config[config_name].init_app(app)

    bootstrap.init_app(app)
    mail.init_app(app)
    moment.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    pagedown.init_app(app)
    flask_admin.init_app(app)
    configure_uploads(app, photos)
    patch_request_class(app)

    flask_admin.add_view(PostModelView(Post, db.session, name='博文管理'))
    flask_admin.add_view(UserModelView(User, db.session, name='用户管理'))
    flask_admin.add_view(RoleModelView(Role, db.session, name='身份管理'))
    path = os.path.join(os.path.dirname(__file__), 'static')
    flask_admin.add_view(MyFileAdmin(path, '/static', name='文件管理'))

    handler = logging.FileHandler('flask_error.log', encoding='UTF-8')
    handler.setLevel(logging.DEBUG)
    logging_format = logging.Formatter(
        '%(asctime)s - %(levelname)s - %(filename)s - %(funcName)s - %(lineno)s - %(message)s')
    handler.setFormatter(logging_format)
    app.logger.addHandler(handler)

    from .main import main as main_blueprint
    app.register_blueprint(main_blueprint)

    from .auth import auth as auth_blueprint
    app.register_blueprint(auth_blueprint, url_prefix='/auth')

    from .api_1_0 import api as api_1_0_blueprint
    app.register_blueprint(api_1_0_blueprint, url_prefix='/api/v1.0')

    from .pic import pic as pic_blueprint
    app.register_blueprint(pic_blueprint, url_prefix='/pic')

    return app
Example #40
0
def configure_extensions(app):
    pages.init_app(app)

    bootstrap.init_app(app)
    app.config["BOOTSTRAP_SERVE_LOCAL"] = True

    db.init_app(app)
    app.config["db"] = db

    login_manager.init_app(app)
    app.config['ext_login_manager'] = login_manager

    configure_identity(app)

    moment.init_app(app)

    mail.init_app(app)
    app.config['ext_mail'] = mail

    sendmail.init_app(app)
    app.config['contrib_sendmail'] = sendmail
Example #41
0
File: app.py Project: nikitph/Ashrm
def register_extensions(app):
    cache.init_app(app)
    db.init_app(app)
    admin.init_app(app)
    register_admin_views(admin)
    user_datastore = MongoEngineUserDatastore(db, User, Role)
    security = Security(app, user_datastore, register_form=ExtendedRegisterForm)
    mail.init_app(app)
    # socketio.init_app(app)
    app.config['DEBUG_TB_PANELS'] = ['flask.ext.mongoengine.panels.MongoDebugPanel',
                                     'flask_debugtoolbar.panels.versions.VersionDebugPanel',
                                     'flask_debugtoolbar.panels.timer.TimerDebugPanel',
                                     'flask_debugtoolbar.panels.headers.HeaderDebugPanel',
                                     'flask_debugtoolbar.panels.request_vars.RequestVarsDebugPanel',
                                     'flask_debugtoolbar.panels.config_vars.ConfigVarsDebugPanel',
                                     'flask_debugtoolbar.panels.template.TemplateDebugPanel',
                                     'flask_debugtoolbar.panels.logger.LoggingPanel',
                                     'flask_debugtoolbar.panels.profiler.ProfilerDebugPanel']
    debug_toolbar.init_app(app)

    return None
Example #42
0
def create_app():
    app = Flask(__name__)
    app.config.from_object(Config)

    db.init_app(app)
    marshmallow.init_app(app)
    migrate.init_app(app, db)
    login.init_app(app)
    dynaconf.init_app(app)
    mail.init_app(app)
    moment.init_app(app)

    # configurando os blueprints
    accounts.configure(app)
    errors.configure(app)
    feed.configure(app)
    users.configure(app)
    #image.configure(app)
    email.configure(app)

    return app
Example #43
0
 def create_app(self):
     # THIS NEEDS TO MIRROR YOUR __init__.py's APP INSTANTIATION
     # ... or whatever you need to setup the right test environment
     from flaskinni import app
     app.config.from_object('settings')
     user_datastore = SQLAlchemyUserDatastore(db, User, Role)
     register_extensions(app)
     # images
     configure_uploads(app, uploaded_images)
     # sort of like an application factory
     db.init_app(app)
     security.init_app(app,
                       user_datastore,
                       confirm_register_form=ExtendedRegisterForm)
     mail.init_app(app)
     md = Markdown(app, extensions=['fenced_code', 'tables'])
     # migrate.init_app(app, db)
     # Add Flask-Admin views for Users and Roles
     admin.init_app(app)
     admin.add_view(UserAdmin(User, db.session))
     admin.add_view(RoleAdmin(Role, db.session))
     admin.add_view(PostAdmin(Post, db.session))
Example #44
0
File: app.py Project: hoang89/fbone
def configure_extensions(app):
    # flask-babel
    babel = Babel(app)

    @babel.localeselector
    def get_locale():
        accept_languages = app.config.get('ACCEPT_LANGUAGES')
        return request.accept_languages.best_match(accept_languages)

    # flask-sqlalchemy
    db.init_app(app)

    # flask-mail
    mail.init_app(app)

    #mongo db
    mongo.init_app(app)

    # flask-cache
    cache.init_app(app)

    # flask-login
    login_manager.login_view = 'frontend.login'
    login_manager.refresh_view = 'frontend.reauth'

    @login_manager.user_loader
    def load_user(id):
        return User.query.get(id)
    login_manager.init_app(app)

    # flask-openid
    oid.init_app(app)

    # init debug toolbar
    toolbar = DebugToolbarExtension(app)

    init_extensions(app)
Example #45
0
def configure_extensions(app):
    db.init_app(app)
    login_manager.init_app(app)
    mail.init_app(app)
Example #46
0
def register_extensions(app):
    """Register all extensions."""
    login_manager.init_app(app)
    debug_toolbar.init_app(app)
    mail.init_app(app)
def create_app(name=None, config=None):
    effective_name = name if name else __name__
    app = Flask(
        effective_name,
        template_folder=os.path.join(FLASK_APP_DIR, '..', 'templates'),
        static_folder=os.path.join(FLASK_APP_DIR, '..', 'static')
    )

    #  Config
    effective_config = config or 'flask_application.config.app_config'
    app.config.from_object(effective_config)
    app.logger.info("Config: %s; DB: %s" % (app.config['ENVIRONMENT'], app.config['SQLALCHEMY_DATABASE_URI']))

    #  Logging
    import logging
    logging.basicConfig(
        level=app.config['LOG_LEVEL'],
        format='%(asctime)s %(levelname)s: %(message)s '
               '[in %(pathname)s:%(lineno)d]',
        datefmt='%Y%m%d-%H:%M%p',
    )

    #  Email on errors
    if not app.debug:
        import logging.handlers
        mail_handler = logging.handlers.SMTPHandler(
            'localhost',
            os.getenv('USER'),
            app.config['SYS_ADMINS'],
            '{0} error'.format(app.config['SITE_NAME']),
        )
        mail_handler.setFormatter(logging.Formatter('''
            Message type:       %(levelname)s
            Location:           %(pathname)s:%(lineno)d
            Module:             %(module)s
            Function:           %(funcName)s
            Time:               %(asctime)s

            Message:

            %(message)s
        '''.strip()))
        mail_handler.setLevel(logging.ERROR)
        app.logger.addHandler(mail_handler)
        app.logger.info("Emailing on error is ENABLED")
    else:
        app.logger.info("Emailing on error is DISABLED")

    # Bootstrap
    from flask_bootstrap import Bootstrap
    Bootstrap(app)

    # Assets
    from flask.ext.assets import Environment
    app.assets = Environment(app)
    # Ensure output directory exists
    assets_output_dir = os.path.join(FLASK_APP_DIR, '..', 'static', 'gen')
    if not os.path.exists(assets_output_dir):
        os.mkdir(assets_output_dir)

    # Email
    mail.init_app(app)
    app.mail = mail

    # Memcache
    cache.init_app(app)
    app.cache = cache

    # Business Logic
    # http://flask.pocoo.org/docs/patterns/packages/
    # http://flask.pocoo.org/docs/blueprints/
    from flask_application.controllers.frontend import frontend
    app.register_blueprint(frontend)

    # SQLAlchemy
    db.init_app(app)
    app.db = db

    from flask.ext.security import SQLAlchemyUserDatastore
    from flask_application.models import User, Role
    from flask_application.ext.flask_security import ExtendedLoginForm

    # Setup Flask-Security
    user_datastore = SQLAlchemyUserDatastore(db, User, Role)
    app.user_datastore = user_datastore

    security.init_app(app=app, datastore=user_datastore, login_form=ExtendedLoginForm)
    app.security = security


    from flask_application.controllers.admin import admin
    app.register_blueprint(admin)

    # REST
    from flask.ext.restful import Api
    app.api = Api(app)

    # TODO
    from flask_application.controllers.todo import todo_blueprint
    app.register_blueprint(todo_blueprint)

    from flask_application.controllers.todo import TodoResource
    app.api.add_resource(TodoResource, '/api/todo', '/api/todo/<int:todo_id>')

    from werkzeug.contrib.fixers import ProxyFix
    app.wsgi_app = ProxyFix(app.wsgi_app)

    if app.config['SETUP_DB']:
        with app.app_context():
            app.db.drop_all()
            app.db.create_all()

            from flask_application.populate import populate_data
            populate_data(app)

    return app
Example #48
0
def configure_extensions(app):
    # flask-mongoengine
    db.init_app(app)
    app.session_interface = MongoEngineSessionInterface(db)
    # flask-mail
    mail.init_app(app)

    # flask-babel
    babel.init_app(app)

    # Bcrypt for hashing passwords
    bcrypt.init_app(app)

    # the Gravatar service
    gravatar.init_app(app)

    # Markdown
    md.init_app(app)

    # Caching
    cache.init_app(app)

    # Debug Toolbar
    if app.debug and app.config['DEBUG_TB_PROFILER_ENABLED']:
        from flask_debugtoolbar import DebugToolbarExtension
        DebugToolbarExtension(app)

    @babel.localeselector
    def get_locale():
        """
        Get the current request locale.

        returns String

        """
        if not hasattr(g, 'lang'):
            g.lang = app.config.get('BABEL_DEFAULT_LOCALE')
        accept_languages = app.config.get('ACCEPT_LANGUAGES')
        # Try to guess the language from the user accept
        # header the browser transmits. We support ar/fr/en,
        # The best match wins.

        g.lang = session.get('language', None) or \
            request.accept_languages.best_match(accept_languages) or \
            g.lang

        if g.lang == 'ar':
            g.lang_dir = 'rtl'
            g.layout_dir_class = 'right-to-left'
            g.language_name = u'العربية'
        else:
            g.lang_dir = 'ltr'
            g.layout_dir_class = 'left-to-right'
            g.language_name = 'English' if g.lang == 'en' else u'Français'

        return g.lang

    # flask-login
    login_manager.login_view = 'frontend.login'
    login_manager.refresh_view = 'frontend.reauth'

    @login_manager.user_loader
    def load_user(user_id):
        return User.objects(id=user_id).first()

    login_manager.setup_app(app)
Example #49
0
File: app.py Project: chewpin/cloud
import time, datetime
from datetime import timedelta
import os
from os import path
from werkzeug import secure_filename # for uploading files
from flask_mail import Mail

import pymssql



app = Flask(__name__)
app.config.from_object('config')

app.register_blueprint(controllers.main, url_prefix='/cloud')
app.register_blueprint(controllers.data, url_prefix='/cloud')
app.register_blueprint(controllers.user, url_prefix='/cloud')

mysql.init_app(app)
mail.init_app(app)




# set the secret key.  keep this really secret:
app.secret_key = os.urandom(24)


if __name__ == "__main__":
    app.run(debug=True)
Example #50
0
def create_app(app_config):
    app = Flask(__name__)
    app.config.from_object(app_config)

    # create a fake MarathonInfo if one doesn't exist
    # just enough to bootstrap
    info = db.session.query(MarathonInfo).first()
    if not info:
        now = datetime.datetime.now()
        half_an_hour_earlier = now - datetime.timedelta(minutes=30)
        half_an_hour_later = now + datetime.timedelta(minutes=30)

        test_game = Game.create(name='Test Game', developer='Test Dev')

        test_play = ScheduleEntry.create(
            title='Play The Test Game',
            game_id=test_game.id,
            start=half_an_hour_earlier,
            end=half_an_hour_later
        )

        MarathonInfo.create(
            start=(now - datetime.timedelta(hours=10)),
            hours=31,
            total=12345.67,
            current_game_id=test_game.id,
            next_game_id=test_game.id,
            current_schedule_entry=test_play.id
        )

    __location__ = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__)))
    try: # dev
        with open(os.path.join(__location__, 'secrets.json')) as secrets_file:
            secrets = json.load(secrets_file)
            app.secret_key = secrets.get('app_secret')
            app_config.SECRET_KEY = app.secret_key

            app.config.update(
                MAIL_SERVER='smtp.gmail.com',
                MAIL_PORT=465,
                MAIL_USERNAME='******',
                MAIL_DEFAULT_SENDER='*****@*****.**',
                MAIL_PASSWORD=secrets.get("email_password"),
                MAIL_USE_SSL=True,
                MAIL_USE_TLS=False
            )
    except IOError: # prod
        app.secret_key = os.environ.get('IGG_APP_SECRET')
        app_config.SECRET_KEY = app.secret_key

        app.config.update(
            MAIL_SERVER='smtp.gmail.com',
            MAIL_PORT=465,
            MAIL_USERNAME='******',
            MAIL_DEFAULT_SENDER='*****@*****.**',
            MAIL_PASSWORD=os.environ.get("IGG_EMAIL_PASSWORD"),
            MAIL_USE_SSL=True,
            MAIL_USE_TLS=False
        )

    login_manager.login_view = 'login.show'

    admin.add_view(AdminModelView(Challenge, db.session, endpoint='challengeadmin'))
    admin.add_view(AdminModelView(Game, db.session))
    admin.add_view(AdminModelView(MarathonInfo, db.session))
    admin.add_view(AdminModelView(Prize, db.session))
    admin.add_view(AdminModelView(Interview, db.session))
    admin.add_view(AdminModelView(ScheduleEntry, db.session))
    admin.add_view(AdminModelView(User, db.session))
    admin.add_view(AdminModelView(Crew, db.session))
    
    admin.add_view(ImageView(Image, db.session))

    login_manager.init_app(app)
    admin.init_app(app)
    mail.init_app(app)
    register_routes(app)

    @app.errorhandler(404)
    def page_not_found(e):
        return render_template('404.tmpl'), 404

    @login_manager.user_loader
    def load_user(id):
        return db.session.query(User).filter_by(id=id).first()

    @app.context_processor
    def inject_marathon_info():
        marathon_info = getattr(g, "marathon_info", None)
        if not marathon_info:
            marathon_info = g.marathon_info = db.session.query(MarathonInfo).first()
        current_game = db.session.query(Game).filter_by(id=marathon_info.current_game_id).first()
        return dict(marathon_info=marathon_info, current_game=current_game)

    return app
Example #51
0
def configure_extensions(app):
    """配置拓展程序,数据库db、缓存cache、邮件mail"""
    # configure extensions         
    db.init_app(app)
    cache.init_app(app)
    mail.init_app(app)
Example #52
0
def register_extensions(app):
    mail.init_app(app)