def create_app(config=None):
    if config is None:
        config = DevelopmentConfig()

    app = Flask(__name__)

    app.config.from_object(config)
    app.config.from_envvar('{{cookiecutter.app_name|upper}}_CONFIG', silent=True)

    assets.init_app(app)
    assets.from_yaml(app.config['ASSETS'])

    db.init_app(app)
    migrate.init_app(app, db)
    login_manager.init_app(app)
    babel.init_app(app)
    mail.init_app(app)

    @app.route('/')
    def home():
        return render_template('home.html')

    for name, url_prefix in app.config.get('MODULES', []):
        blueprint = getattr(getattr(modules, name), name)
        app.register_blueprint(blueprint, url_prefix=url_prefix)

    return app
示例#2
0
def create_app(config=None):
    app = Flask(__name__)

    # 加载配置
    app.config.from_object('config.settings')
    app.config.from_object('config.secure')

    # 加载环境配置
    if 'FLASK_CONF' in os.environ:
        app.config.from_envvar('FLASK_CONF')

    # 加载具体的配置
    if config is not None:
        if isinstance(config, dict):
            app.config.update(config)
        elif config.endswith('.py'):
            app.config.from_pyfile(config)

    # 将序列、数据库、路由挂载到app
    import serializer, models, router, mail
    serializer.init_app(app)
    models.init_app(app)
    router.init_app(app)
    mail.init_app(app)

    return app
示例#3
0
def register_extensions(app):
    assets.init_app(app)
    bcrypt.init_app(app)
    cache.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    debug_toolbar.init_app(app)
    migrate.init_app(app, db)
    mail.init_app(app)
    return None
示例#4
0
def register_extensions(app):
    """Register Flask extensions."""
    bcrypt.init_app(app)
    cache.init_app(app)
    db.init_app(app)
    csrf_protect.init_app(app)
    login_manager.init_app(app)
    debug_toolbar.init_app(app)
    migrate.init_app(app, db)
    moment.init_app(app)
    mail.init_app(app)
    webpack.init_app(app)
    return None
示例#5
0
def register_extensions(app):
    """ Register Flask extensions. """

    bcrypt.init_app(app)
    cache.init_app(app)
    csrf_protect.init_app(app)
    login_manager.init_app(app)
    debug_toolbar.init_app(app)
    migrate.init_app(app, db)
    # webpack.init_app(app)
    jwt.init_app(app)
    # If db is SQLAlchemy instance,
    # Flask-SQLAlchemy must be initialized before Flask-Marshmallow
    db.init_app(app)
    ma.init_app(app)
    mail.init_app(app)
    rest_api.init_app(app)
    celery.init_app(app)
示例#6
0
def create_app(test_config=None):

    app = Flask(__name__)

    app.json_encoder = CustomJSONEncoder

    app.config.from_file('config/default.json', json.load)

    if test_config is None:
        # load prod settings if not testing and if they exist
        try:
            app.config.from_file('config/prod.json', json.load)
        except FileNotFoundError:
            pass
    else:
        app.config.update(test_config)


    # Setup monitoring if enabled
    if (app.config.get("SENTRY_ENABLED")):
        sentry_sdk.init(
            dsn="https://[email protected]/6180332",
            integrations=[FlaskIntegration()],
            # Set percent of things that are traced
            traces_sample_rate=0
        )


    db.init_app(app)
    mail.init_app(app)
    tokens.init_app(app)

    from apis.sprints import sprint_api
    from apis.runs import run_api
    from apis.users import user_api
    from apis.profiles import profile_api
    from apis.scraper import scraper_api
    from apis.ratings import ratings_api
    from apis.stats import stats_api
    from apis.marathon import marathon_api
    from apis.lobbys import lobby_api
    from apis.generator import generator_api, load_page_rank
    from views import views

    app.register_blueprint(sprint_api)
    app.register_blueprint(run_api)
    app.register_blueprint(user_api)
    app.register_blueprint(profile_api)
    app.register_blueprint(scraper_api)
    app.register_blueprint(ratings_api)
    app.register_blueprint(stats_api)
    app.register_blueprint(marathon_api)
    app.register_blueprint(lobby_api)
    app.register_blueprint(generator_api)
    app.register_blueprint(views)

    # Hacky way to load in
    try:
        load_page_rank(app)
    except Exception as e:
        print(e)

    return app