Esempio n. 1
0
def create_app(settings_ns):

    babel = Babel()
    app = Flask(
        __name__,
        static_url_path="/static",
        static_folder="static",
        instance_relative_config=False,
    )

    app.config.from_object(settings_ns)

    app.register_blueprint(main_bp)
    app.jinja_env.filters["clean_uri"] = clean_uri
    app.context_processor(utility_processor)
    babel.init_app(app)

    if app.config["DEBUG"]:
        try:
            from flask_debugtoolbar import DebugToolbarExtension
        except ImportError:
            LOGGER.info('cannot import lib "flask_debugtoolbar". '
                        'Make sure it is installed and available in the '
                        'import path.')
        else:
            toolbar = DebugToolbarExtension()
            toolbar.init_app(app)

    return app
Esempio n. 2
0
def configure_packages(app):
    debug_toolbar = DebugToolbarExtension()
    themes = Themes()

    debug_toolbar.init_app(app)
    themes.init_themes(app, app_identifier="forumcodename")
    db.init_app(app)
Esempio n. 3
0
def create_app():
    model_manager = ModelManager()
    toolbar = DebugToolbarExtension()

    app = Flask(__name__)
    app.debug = False
    app.config["SECRET_KEY"] = "hello world"
    app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///:memory:"
    app.config["DEBUG_TB_INTERCEPT_REDIRECTS"] = False
    app.config["DEBUG_TB_PROFILER_ENABLED"] = True

    db.init_app(app)

    model_manager.register_model(User)
    model_manager.register_model(Address)
    model_manager.register_model(RandomTypeTable)

    model_manager.init_app(app, db)
    toolbar.init_app(app)

    with app.app_context():
        db.create_all()
        populate(db.session)

    return app
Esempio n. 4
0
    def register_extensions(app):
        if app.debug:
            from flask_debugtoolbar import DebugToolbarExtension

            debug_toolbar = DebugToolbarExtension()
            debug_toolbar.init_app(app)

        db.init_app(app)
        mail.init_app(app)
        wtf.add_helpers(app)
        md.init_app(app)

        s3.init_app(app)

        celery.init_app(app)

        assets.init_app(app)
        assets.register(bundles)

        migrate.init_app(app, db)

        admin.init_app(app)

        register_health_check(app, db)

        sentry_sdk.init(
            dsn=app.config.get("SENTRY_DSN"), integrations=[FlaskIntegration()]
        )

        # Setup Flask-Security
        user_datastore = SQLAlchemyUserDatastore(db, User, Role)
        configure_security(app, user_datastore)
Esempio n. 5
0
def create_app(script_info=None):
    app = Flask('sweext_web', static_url_path='')
    # check the env is prod or dev
    if os.getenv('RUN_IN_PROD') == 'True':
        app.config.from_object('sweext_web.config.web_config.Config')
    else:
        app.config.from_object('sweext_web.config.web_config_dev.DevConfig')

    db.init_app(app)

    HomeUrlRegister.register()
    StepsUrlRegister.register()
    ClaimUrlRegister.register()

    app.register_blueprint(home.views.home_blueprint)
    app.register_blueprint(steps.views.steps_blueprint)
    app.register_blueprint(claim.views.claim_blueprint)

    app.debug = False
    toolbar = DebugToolbarExtension()
    toolbar.init_app(app)

    app.register_error_handler(401, HttpError.handle_401)
    app.register_error_handler(403, HttpError.handle_403)
    app.register_error_handler(404, HttpError.handle_404)
    app.register_error_handler(405, HttpError.handle_405)
    app.register_error_handler(500, HttpError.handle_500)

    return app
Esempio n. 6
0
def create_app():
    app = Flask(__name__)
    app.config.from_object(config)
    config.init_app(app)

    bootstrap.init_app(app)
    mail.init_app(app)
    db.init_app(app)
    login_manager.init_app(app)
    babel.init_app(app)
    celery.conf.update(app.config)

    if app.config['SSL_REDIRECT']:
        from flask_sslify import SSLify
        SSLify(app)

    app.wsgi_app = ProxyFix(app.wsgi_app)

    if app.debug:
        from flask_debugtoolbar import DebugToolbarExtension
        debug_toolbar = DebugToolbarExtension()
        debug_toolbar.init_app(app)

    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
Esempio n. 7
0
def create_app(config_name=None):
    if config_name is None:
        config_name = os.getenv('FLASK_CONFIG', 'default')

    app = Flask(__name__)

    app.config['SECRET_KEY'] = 'xxxxxxxxx'

    app.debug = False
    toolbar = DebugToolbarExtension()
    toolbar.init_app(app)

    # 配置引入
    app.config.from_object(config[config_name])
    app.config.from_object(TaskConfig())
    app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False

    # 上下文推送
    #app.app_context().push()

    # 注册扩展
    register_extensions(app)
    register_blueprints(app)
    register_commands(app)

    # 启动apscheduler服务
    scheduler.start()

    # apscheduler api认证
    @scheduler.authenticate
    def authenticate(auth):
        return auth['username'] == 'guest' and auth['password'] == 'guest'

    return app
Esempio n. 8
0
def create_app(settings_ns):

    babel = Babel()
    app = Flask(
        __name__,
        static_url_path="/static",
        static_folder="static",
        instance_relative_config=False,
    )

    app.config.from_object(settings_ns)

    app.register_blueprint(main_bp)
    app.jinja_env.filters["clean_uri"] = clean_uri
    app.context_processor(utility_processor)
    babel.init_app(app)

    if app.config["DEBUG"]:
        try:
            from flask_debugtoolbar import DebugToolbarExtension
        except ImportError:
            LOGGER.info('cannot import lib "flask_debugtoolbar". '
                        'Make sure it is installed and available in the '
                        'import path.')
        else:
            toolbar = DebugToolbarExtension()
            toolbar.init_app(app)

    return app
Esempio n. 9
0
def create_app(config_filename=None, config_object=None):
    """
    Create a new application object. The database and CLI are automatically
    wired up. If ``config_filename`` or ``config_object`` are not ``None`` they
    are passed to :py:func:`app.config.from_pyfile` and
    :py:func:`app.config.from_object` respectively.

    Returns the newly created application object.

    """
    app = Flask(__name__)

    app.config.from_object('psephology.config.default')
    if config_filename is not None:
        app.config.from_pyfile(config_filename)
    if config_object is not None:
        app.config.from_object(config_object)

    db.init_app(app)
    migrate.init_app(app, db, render_as_batch=True)

    app.register_blueprint(ui)
    app.register_blueprint(api, url_prefix='/api')
    app.cli.add_command(cli)

    # Things which should only be present in DEBUG-enabled apps
    app.debug = app.config.get('DEBUG', False)
    if app.debug:
        from flask_debugtoolbar import DebugToolbarExtension
        toolbar = DebugToolbarExtension()
        toolbar.init_app(app)

    return app
Esempio n. 10
0
def create_app(config_filename=None):
    app = Flask(__name__)

    app.config.from_object('bitsbox.config.default')
    if config_filename is not None:
        app.config.from_pyfile(config_filename)

    db.init_app(app)
    migrate.init_app(app, db, render_as_batch=True)

    app.register_blueprint(ui)
    app.cli.add_command(cli)

    # Things which should only be present in DEBUG-enabled apps
    app.debug = app.config.get('DEBUG', False)
    if app.debug:
        from flask_debugtoolbar import DebugToolbarExtension
        toolbar = DebugToolbarExtension()
        toolbar.init_app(app)

    # GraphQL support
    app.register_blueprint(graphql, url_prefix='/graphql')
    app.register_blueprint(graphiql, url_prefix='/graphiql')

    return app
Esempio n. 11
0
def create_app(config_name):

    app = Flask(__name__)

    CORS(app, supports_credentials=True)

    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)
    db.app = app

    toolbar = DebugToolbarExtension()
    toolbar.init_app(app)

    login_manager.init_app(app)

    init_swagger(app)




    # 蓝图注册
    from pyfw.system import system_blue
    app.register_blueprint(system_blue, url_prefix='/api/v1/common')



    return app
Esempio n. 12
0
def create_app():

    app = Flask(__name__,
                static_folder=static_folder,
                template_folder=template_folder)

    app.register_blueprint(user_blueprint, url_prefix='/user')

    # 设置数据库配置
    app.config['SQLALCHEMY_DATABASE_URI'] = get_sqlalchemy_uri(MYSQL_DATABASE)
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

    # 配置redis-->session
    app.config['SESSION_TYPE'] = 'redis'
    app.config['SESSION_REDIS'] = redis.Redis(host=REDIS_DATABASE['HOST'],
                                              port=REDIS_DATABASE['PORT'])

    app.config['SECRET_KEY'] = 'secret_key'
    app.debug = True

    db.init_app(app)
    se = Session()
    se.init_app(app)
    bar = DebugToolbarExtension()
    bar.init_app(app)

    return app
Esempio n. 13
0
def create_app(script_info=None):

    # instantiate the app
    app = Flask(__name__)
    CORS(app)

    # set config
    app_settings = os.getenv('APP_SETTINGS')
    app.config.from_object(app_settings)

    # set up extensions
    db.init_app(app)
    migrate.init_app(app, db)
    if app.config['DEBUG_TB_ENABLED']:
        from flask_debugtoolbar import DebugToolbarExtension
        toolbar = DebugToolbarExtension()
        toolbar.init_app(app)

    # register blueprints
    from project.api.users import users_blueprint
    app.register_blueprint(users_blueprint)

    # shell context for flask cli
    @app.shell_context_processor
    def ctx():
        return {'app': app, 'db': db}

    return app
Esempio n. 14
0
def create_app(config_class=Config):
    """
    Functional that creating Flask app from config
    """
    logging.basicConfig(filename='logs/' + __name__ + '.log',
                        level=logging.ERROR)
    app = Flask(__name__)
    app.config.from_object(config_class)
    db.init_app(app)
    migrate.init_app(app, db)
    toolbar = DebugToolbarExtension()
    toolbar.init_app(app)

    config = app.config
    panels = list(config['DEBUG_TB_PANELS'])
    config['DEBUG_TB_PANELS'] = panels

    from .fin.routes.csv import csv
    from .fin.routes.asset import asset
    from .site import site

    app.register_blueprint(asset, url_prefix='/fin')
    app.register_blueprint(csv, url_prefix='/fin')
    app.register_blueprint(site)
    app.jinja_env.filters['zip'] = zip
    return app
Esempio n. 15
0
def create_app():
    # Initialize Flask instance and enable static file serving
    app = Flask(__name__)
    app.config.from_object(config[ENV_CONFIG]())  # instance is for __init__
    app.wsgi_app = WhiteNoise(app.wsgi_app, root='static/')

    # Initialize Sentry for error tracking
    sentry.init_app(app)

    # Custom Json
    app.json_encoder = CustomJSONEncoder
    compress.init_app(app)

    # Initialize DebugToolbar
    if app.config['DEBUG']:
        from flask_debugtoolbar import DebugToolbarExtension
        toolbar = DebugToolbarExtension()
        toolbar.init_app(app)

    # Initialize Database and Migration by Flask-Sqlalchey and Flask-Migrate
    db.init_app(app)
    migrate.init_app(
        app,
        db,
        directory=join(
            abspath(dirname(project.__file__)),
            'migrations'))  # set directory for compatible with Heroku

    # Initialize app blueprint
    from .blueprints.app import app as app_blueprint
    app.register_blueprint(app_blueprint, url_prefix='/')

    # Initialize api10 blueprint
    from .blueprints.apiv1 import apiv1 as apiv1_blueprint
    app.register_blueprint(apiv1_blueprint, url_prefix='/v1')

    # Initialize CLI shell command
    @app.shell_context_processor
    def make_shell_context():
        return dict(app=app, db=db)

    # Initialize CLI command for pytest-cov
    @app.cli.command(name='py.test')
    @click.option('--cov')
    @click.option('--cov-report')
    def pytest_cov(cov, cov_report):
        """Run pytest with pytest-cov plugin."""
        import pytest

        sys.argv = ['py.test', '-s']
        sys.argv += ['--cov={}'.format(cov)] if cov else []
        sys.argv += ['--cov-report={}'.format(cov_report)
                     ] if cov_report else []

        sys.exit(pytest.main())

    return app
Esempio n. 16
0
def register_debug_extensions(app):
  from flask_debugtoolbar import DebugToolbarExtension
  toolbar = DebugToolbarExtension()
  toolbar.init_app(app)

  from flask_admin.contrib.mongoengine import ModelView
  import flask_admin as admin
  admin = admin.Admin(app, 'TimeTracker:Admin')

  # Add views
  from models import User, Role
  admin.add_view(ModelView(User))
  admin.add_view(ModelView(Role))
Esempio n. 17
0
def init_ext(app):
    migrate = Migrate(app=app,db=db)
    se = Session()
    se.init_app(app)
    db.init_app(app)

    # 调试插件的实例化
    debug = DebugToolbarExtension()
    debug.init_app(app)
    #缓存
    cache.init_app(app,config=CACHE.get("default"))

    bootstrap.init_app(app)
Esempio n. 18
0
def build_flask_app(use_local_db):
    """ Build and initialize the flask app. """
    app = Flask(__name__)

    app.config['DEBUG'] = DEBUG

    # Set the log level for the super logger
    logger.set_log_level(LOG_LEVEL)

    # Secret key used by Flask to sign cookies.
    app.config['SECRET_KEY'] = FLASK_SECRET

    # Cache all static files for 1 year by default.
    app.config['SEND_FILE_MAX_AGE_DEFAULT'] = ONE_YEAR

    if use_local_db:
        logger.info('app', 'Loading local user database...')
        app.config['SQLALCHEMY_DATABASE_URI'] = LOCAL_DB_URI
    else:
        logger.info('app', 'Loading remote user database...')
        app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI

    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
    app.config['SQLALCHEMY_RECORD_QUERIES'] = True

    # Initialize SQLAlchemy and integrate it with the Flask instance
    DB.init_app(app)

    app.register_blueprint(blueprint)

    # Enable login management
    login_manager.init_app(app)

    # Enable WebSocket integration
    socketio.init_app(app)

    # Enable gzip compression of static assets
    Compress().init_app(app)

    # Enable indefinite caching of static assets based on hash values
    CacheBuster(config=STATIC_CACHE_CONFIG).init_app(app)

    # Enable the Flask debug toolbar ONLY if debug mode is enabled
    debug_toolbar = DebugToolbarExtension()
    debug_toolbar.init_app(app)

    # Inject certain constants defined in 'inject_constants' for Jinja processing
    app.context_processor(inject_constants)

    return app
Esempio n. 19
0
def init_app(config_file, create_tables=None):
    app.config.from_object('cleansweep.default_settings')

    if config_file:
        # take the absolute path, otherwise Flask looks for file relative to the app
        # insted of PWD.
        config_path = config_file and os.path.abspath(config_file)

        app.config.from_pyfile(config_path, silent=True)
        logger.info("init_app %s", config_path)

    if os.getenv('CLEANSWEEP_SETTINGS'):
        app.config.from_envvar('CLEANSWEEP_SETTINGS')

    utils.setup_error_emails(app)
    utils.setup_logging(app)

    # Setup the view helpers
    view_helpers.init_app(app)

    # load plugins
    plugins = app.config['DEFAULT_PLUGINS'] + app.config['PLUGINS']
    for name in plugins:
        plugin.load_plugin(name)

    # enable create_tables if a value is not speficied and the app is running in debug mode
    if create_tables is None and app.config['DEBUG']:
        create_tables = True

    if create_tables:
        db.create_all()

    if app.debug:
        app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False
        toolbar = DebugToolbarExtension()
        toolbar.init_app(app)

    if app.debug or app.config.get("ENABLE_MOCKDOWN") == "true":
        import mockdown
        app.register_blueprint(mockdown.mockdown_app, url_prefix="/mockups")
        mockdown._mockdown.set_root("mockups")

    # load all helpers
    from . import helpers

    # load all the views
    from . import views

    app.logger.info("Starting cleansweep app")
    return app
def main(global_config, **settings):
    """ WSGI-Server erzeugen und konfigurieren. """

    # extrat all flask.* configuration items
    flaskConfig = pasteToFlaskConfig(global_config, settings)
    DEBUG = flaskConfig.get('DEBUG', '0') in ['1', 'on', 'true']
    VERBOSE = int(global_config.get('STARTUP_VERBOSE', 0))

    # create app instance
    connexionApp = connexion.App("{{cookiecutter.project_name}}", debug=DEBUG, swagger_ui=True)
    flaskApp = connexionApp.app

    # configure
    flaskApp.config.update(flaskConfig)
    cloudFoundryfyConfig(flaskApp.config)
    
    # Rest-Endpoint CF Spring Actuator like Metadaten (Definition im sub-package api.actuator)
    apiFile = pkg_resources.resource_filename(__name__, 'schema/actuator.yml')
    connexionApp.add_api(apiFile, strict_validation=False, validate_responses=True,
                         resolver=connexion.RestyResolver('%s.api.actuator' % (__package__)),
                         base_path='/cloudfoundryapplication')

    # Restendpoint App Version 1 (Definition im sub-package api)
    apiFile = pkg_resources.resource_filename(__name__, 'schema/app_v1.yml')
    connexionApp.add_api(apiFile, strict_validation=True, validate_responses=True,
                         resolver=connexion.RestyResolver('%s.api' % (__package__)))

    if VERBOSE > 0:
        print(yaml.dump(flaskApp.config))

    if DEBUG:
        from flask_debugtoolbar import DebugToolbarExtension
        toolbar = DebugToolbarExtension()
        toolbar.init_app(flaskApp)

    {% if cookiecutter.use_reldb.startswith('y') %}
    # proaktive Initialisierung der Datenbank (entfernen -> lazy)
    from .model import getDb
    with flaskApp.app_context():
        db = getDb()
    {%- endif -%}

    {% if cookiecutter.use_ui.startswith('y') %}
    # simple web-ui page without swagger
    from .ui.hello import helloPage
    flaskApp.register_blueprint(helloPage)
    {%- endif -%}

    return flaskApp
Esempio n. 21
0
def add_debug_toolbar(app):
    app.config['DEBUG_TB_PANELS'] = (
        '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.route_list.RouteListDebugPanel',
        'flask_debugtoolbar.panels.profiler.ProfilerDebugPanel')

    from flask_debugtoolbar import DebugToolbarExtension
    toolbar = DebugToolbarExtension()
    toolbar.init_app(app)
Esempio n. 22
0
def init_ext(app):
    migrate = Migrate()
    migrate.init_app(app=app, db=db)
    db.init_app(app=app)
    Session(app=app)

    debugtoolbar = DebugToolbarExtension()
    debugtoolbar.init_app(app=app)

    Bootstrap(app=app)

    cache.init_app(app=app)

    # 邮箱初始化
    mail.init_app(app=app)
Esempio n. 23
0
def init_app(config_file, create_tables=None):
    app.config.from_object('cleansweep.default_settings')

    if config_file:
        # take the absolute path, otherwise Flask looks for file relative to the app
        # insted of PWD.
        config_path = config_file and os.path.abspath(config_file)

        app.config.from_pyfile(config_path, silent=True)
        logger.info("init_app %s", config_path)

    if os.getenv('CLEANSWEEP_SETTINGS'):
        app.config.from_envvar('CLEANSWEEP_SETTINGS')

    utils.setup_error_emails(app)
    utils.setup_logging(app)

    # Setup the view helpers
    view_helpers.init_app(app)

    # load plugins
    plugins = app.config['DEFAULT_PLUGINS'] + app.config['PLUGINS']
    for name in plugins:
        plugin.load_plugin(name)

    # enable create_tables if a value is not speficied and the app is running in debug mode
    if create_tables is None and app.config['DEBUG']:
        create_tables = True

    if create_tables:
        db.create_all()

    if app.debug:
        app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False
        toolbar = DebugToolbarExtension()
        toolbar.init_app(app)

    if app.debug or app.config.get("ENABLE_MOCKDOWN") == "true":
        enable_mockdown()

    # load all helpers
    from . import helpers

    # load all the views
    from . import views

    app.logger.info("Starting cleansweep app")
    return app
Esempio n. 24
0
    def init_app(cls, app):
        from flask_debugtoolbar import DebugToolbarExtension

        debug = DebugToolbarExtension()
        debug.init_app(app)

        @app.after_app_request
        def after_request(response):
            for query in get_debug_queries():
                if query.duration >= current_app.config[
                        'FLASK_SLOW_DB_QUERY_TIME']:
                    current_app.logger.warning(
                        'Slow query: %s\nParameters: %s\nDuration: %fs\nContext: %s\n'
                        % (query.statement, query.parameters, query.duration,
                           query.context))
            return response
Esempio n. 25
0
def init_app(config_file, create_tables=False):
    # take the absolute path, otherwise Flask looks for file relative to the app
    # insted of PWD.
    config_path = os.path.abspath(config_file)

    app.config.from_object('cleansweep.default_settings')

    # Hack to make it easier to specify production config
    app.config.from_pyfile(config_path, silent=True)

    if os.getenv('CLEANSWEEP_SETTINGS'):
        app.config.from_envvar('CLEANSWEEP_SETTINGS')

    utils.setup_error_emails(app)
    utils.setup_logging(app)
    logger.info("init_app %s", config_path)

    # Setup the view helpers
    view_helpers.init_app(app)

    # load plugins
    plugins = app.config['DEFAULT_PLUGINS'] + app.config['PLUGINS']
    for name in plugins:
        plugin.load_plugin(name)

    if create_tables:
        db.create_all()

    if app.debug:
        app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False
        toolbar = DebugToolbarExtension()
        toolbar.init_app(app)

    if app.debug or app.config.get("ENABLE_MOCKDOWN") == "true":
        import mockdown
        app.register_blueprint(mockdown.mockdown_app, url_prefix="/mockups")
        mockdown._mockdown.set_root("mockups")

    # load all helpers
    from . import helpers

    # load all the views
    from . import views

    app.logger.info("Starting cleansweep app")
    return app
Esempio n. 26
0
def extensions_fabrics(app):
    # see https://github.com/xen/flask-project-template

    from flask_bcrypt import Bcrypt

    bcrypt = Bcrypt()
    bcrypt.init_app(app)

    from flask_bootstrap import Bootstrap

    bootstrap = Bootstrap()
    bootstrap.init_app(app)

    from flask_debugtoolbar import DebugToolbarExtension

    toolbar = DebugToolbarExtension()
    toolbar.init_app(app)
Esempio n. 27
0
def init_ext(app):

    # 实例化
    se = Session()
    # 绑定app
    se.init_app(app)

    # db绑定
    db.init_app(app)

    # 实例化migrate
    migrate = Migrate(app=app, db=db)

    bs.init_app(app)

    toolbar = DebugToolbarExtension()
    toolbar.init_app(app)

    cache.init_app(app)
Esempio n. 28
0
def register_extensions(app):
    """Register Flask extensions."""
    # initialize extensions
    migrate = Migrate()
    moment = Moment()
    csrf = CSRFProtect()
    toolbar = DebugToolbarExtension()

    # register extensions
    moment.init_app(app)
    migrate.init_app(app, db)
    db.init_app(app)
    toolbar.init_app(app)

    csrf.init_app(app)
    csrf.exempt("fyyur.controllers.venues.search_venues")
    csrf.exempt("fyyur.controllers.venues.delete_venue")
    csrf.exempt("fyyur.controllers.artists.search_artists")

    app.jinja_env.filters["datetime"] = format_datetime
Esempio n. 29
0
def init_ext(app):

    # 命令行参数使用
    migrate = Migrate()
    migrate.init_app(app=app,db=db)
    db.init_app(app=app)
    Session(app=app)

    # 开启调试
    debugtoolbar = DebugToolbarExtension()
    debugtoolbar.init_app(app=app)

    # 使用模板
    Bootstrap(app=app)

    # 初始化缓存
    cache.init_app(app=app)

    # 邮箱初始化
    mail.init_app(app=app)
Esempio n. 30
0
    def register_extensions(self, app):
        if app.debug:
            debug_toolbar = DebugToolbarExtension()
            debug_toolbar.init_app(app)

        db.init_app(app)
        mail.init_app(app)
        wtf.add_helpers(app)

        s3.init_app(app)

        assets = Environment(app)
        assets.register(bundles)

        admin.init_app(app)

        register_health_check(app, db)

        # Setup Flask-Security
        user_datastore = SQLAlchemyUserDatastore(db, User, Role)
        app.security = Security(app, user_datastore)
Esempio n. 31
0
def init_ext(app):
    # flask-session
    app.config['SECRET_KEY'] = '119'
    app.config['SESSION_TYPE'] = 'redis'
    app.config['SESSION_KEY_PREFIX'] = 'flask1905'
    Session(app=app)

    # sqlalchemy
    db.init_app(app=app)

    # flask-migrate
    migrate = Migrate()
    migrate.init_app(app=app, db=db)

    # flask-bootstrap
    Bootstrap(app=app)

    # flask-debugtoolbar
    app.debug = True
    debugtoolbar = DebugToolbarExtension()
    debugtoolbar.init_app(app=app)
Esempio n. 32
0
def create_app(**config_overrides: dict) -> Flask:
    """Create the Flask app

    Returns:
        Flask -- a Flask app instance
    """

    app = Flask(__name__)

    # setup logging
    logging.basicConfig(
        level=logging.INFO,
        format="%(asctime)s %(levelname)s %(name)s : %(message)s")

    # setup app config
    app.config.from_object("settings")
    app.config.update(config_overrides)

    # setup database
    db.init_app(app)

    # setup admin dashboard
    app.config["FLASK_ADMIN_SWATCH"] = "flatly"
    admin = Admin(app, name="Admin", template_mode="bootstrap3")
    admin.add_view(MovieDocumentView(MovieDocument))

    # setup blueprints
    app.register_blueprint(blueprint)

    # setup CLI commands
    app.cli.add_command(dev_cli)

    # setup debug toolbar
    app.config["DEBUG_TB_PANELS"] = [
        "flask_mongoengine.panels.MongoDebugPanel"
    ]
    toolbar = DebugToolbarExtension()
    toolbar.init_app(app)

    return app
Esempio n. 33
0
def create_app(test_config=None):
    # create and configure the app
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_mapping(
        SECRET_KEY='dev',
        DATABASE=os.path.join(app.instance_path, 'flaskr.sqlite3'),
    )

    if test_config is None:
        # load the instance config, if it exists, when not testing
        app.config.from_pyfile('config.py', silent=True)
    else:
        # load the test config if passed in
        app.config.from_mapping(test_config)

    try:
        os.makedirs(app.instance_path)
    except OSError:
        pass

    @app.route('/hello')
    def hello():
        return 'Hello, World!'

    from . import db
    db.init_app(app)

    toolbar = DebugToolbarExtension()
    toolbar.init_app(app)

    from . import auth
    app.register_blueprint(auth.bp)

    from . import blog
    app.register_blueprint(blog.bp)
    app.add_url_rule('/', endpoint='index')

    return app
Esempio n. 34
0
def profile():
    """ Run profiler and debugger."""
    from flask_debugtoolbar import DebugToolbarExtension
    import flask_profiler

    app.config["flask_profiler"] = {
        "enabled": app.config["DEBUG"],
        "storage": {
            "engine": "sqlite"
        },
        "basicAuth": {
            "enabled": False
        },
        "ignore": ["^/tests/.*", "^/src"],
    }
    flask_profiler.init_app(app)
    app.config["DEBUG_TB_PROFILER_ENABLED"] = True
    app.config["DEBUG_TB_INTERCEPT_REDIRECTS"] = False

    toolbar = DebugToolbarExtension()
    toolbar.init_app(app)
    print(
        " * Flask profiling running at http://127.0.0.1:4000/flask-profiler/")
Esempio n. 35
0
    def _create_app(self):
        app = Flask(__name__)

        self._load_config(app)
        self._register_path(app)

        # use template pug(jade)
        app.jinja_env.add_extension('pyjade.ext.jinja.PyJadeExtension')

        # use webpack
        webpack = Webpack()
        webpack.init_app(app)

        # routing
        register_routes(app)

        # init db
        init_db(app)

        toolbar = DebugToolbarExtension()
        toolbar.init_app(app)

        return app
Esempio n. 36
0
def create_app(settings_file):
    app = Flask(__name__)
    app.config.from_pyfile(settings_file)

    cache.init_app(app)

    mail = Mail()
    csrf = CsrfProtect()

    csrf.init_app(app)
    db.init_app(app)

    toolbar = DebugToolbarExtension()
    toolbar.init_app(app)

    app.mail = mail

    mail.init_app(app)
    app.hashids = Hashids(salt="salty seafaring sailor",  min_length=8)

    register_errorhandlers(app)
    app.register_blueprint(main)
    
    return app
Esempio n. 37
0
# -*-coding:utf-8-*-
# author qomo
from flask_debugtoolbar import DebugToolbarExtension
from app import app
from models import Note
import views

debugger = DebugToolbarExtension()
debugger.init_app(app)
if __name__ == '__main__':
    Note.create_table(True)
    app.run()
Esempio n. 38
0
def create_app():
    app = Flask(__name__,
                static_url_path='/static',
                static_folder='static',
                instance_relative_config=False)

    # Configurações
    app.config.from_object('webapp.config.default')  # Configuração basica
    app.config.from_envvar('OPAC_CONFIG', silent=True)  # configuração do ambiente

    # Assets
    js = Bundle('js/vendor/jquery-1.11.0.min.js',
                'js/vendor/bootstrap.min.js',
                'js/vendor/jquery-ui.min.js',
                'js/plugins.js',
                'js/main.js',
                filters='jsmin', output='js/bundle.js')

    css = Bundle('css/bootstrap.min.css',
                 'css/scielo-portal.css',
                 filters='cssmin', output='css/bundle.css')

    assets.register('js_all', js)
    assets.register('css_all', css)
    assets.init_app(app)
    # i18n
    babel.init_app(app)
    # login
    login_manager.init_app(app)

    if app.config['DEBUG']:
        # Toolbar
        from flask_debugtoolbar import DebugToolbarExtension
        toolbar = DebugToolbarExtension()
        toolbar.init_app(app)
    # Mongo
    dbmongo.init_app(app)
    # SQLAlchemy
    dbsql.init_app(app)
    # Emails
    mail.init_app(app)

    # Interface do admin
    from .models import User
    # from .admin import views
    from webapp.admin import views

    admin = flask_admin.Admin(
        app, 'OPAC admin',
        index_view=views.AdminIndexView(),
        template_mode='bootstrap3',
        base_template="admin/opac_base.html")

    admin.add_view(views.CollectionAdminView(Collection, name=lazy_gettext(u'Coleção')))
    admin.add_view(views.SponsorAdminView(Sponsor, name=lazy_gettext(u'Financiador')))
    admin.add_view(views.JournalAdminView(Journal, name=lazy_gettext(u'Periódico')))
    admin.add_view(views.IssueAdminView(Issue, name=lazy_gettext(u'Fascículo')))
    admin.add_view(views.ArticleAdminView(Article, name=lazy_gettext(u'Artigo')))
    admin.add_view(views.UserAdminView(User, dbsql.session, name=lazy_gettext(u'Usuário')))

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

    app.wsgi_app = ProxyFix(app.wsgi_app)

    return app
Esempio n. 39
0
def create_app():
    app = Flask(__name__)
    app.config.from_object('application.default_settings')

    db.init_app(app)
    toolbar = DebugToolbarExtension()
    toolbar.init_app(app)

    ## ------------------------------- ##
    #     initializing blueprints       #
    ## ------------------------------- ##

    # frontend blueprints
    from .blueprints.frontend import frontend
    app.register_blueprint(frontend)

    # products/displays blueprints
    from .blueprints.tfts import tft
    app.register_blueprint(tft)

    from .blueprints.lcd import lcd
    app.register_blueprint(lcd)

    from .blueprints.oled import oled
    app.register_blueprint(oled)

    from .blueprints.epaper import epaper
    app.register_blueprint(epaper)

    from .blueprints.custom_displays import custom_displays
    app.register_blueprint(custom_displays)

    # products/touch panels blueprints
    from .blueprints.touch_panels import touch_panels
    app.register_blueprint(touch_panels)

    # products/thermal_printers blueprints
    from .blueprints.thermal_printers import thermal_printers
    app.register_blueprint(thermal_printers)

    # products/computers blueprints
    from .blueprints.computers import computers
    app.register_blueprint(computers)

    # products/others blueprints
    from .blueprints.others import others
    app.register_blueprint(others)

    # 404 page not found "route"
    @app.errorhandler(404)
    def not_found():
        title = "404 Page not found"
        return render_template('404.html', title=title), 404

    # 500 server error "route"
    @app.errorhandler(500)
    def server_error():
        title = "500 Server Error"
        db.session.rollback()
        return render_template('500.html', title=title), 500

    return app
Esempio n. 40
0
def create_app():
    app = Flask(__name__,
                static_url_path='/static',
                static_folder='static',
                instance_relative_config=False)

    app.url_map.converters['regex'] = RegexConverter

    # Configurações
    app.config.from_object('webapp.config.default')  # Configuração basica
    app.config.from_envvar('OPAC_CONFIG', silent=True)  # configuração do ambiente
    # login
    login_manager.session_protection = 'strong'
    login_manager.login_view = 'admin.login_view'
    login_manager.init_app(app)

    # Minificando o HTML
    if not app.config['DEBUG']:
        HTMLMIN(app)

    # Registrando os filtros
    app.jinja_env.filters['abbrmonth'] = jinja_filters.abbrmonth
    app.jinja_env.filters['trans_alpha2'] = custom_filters.trans_alpha2

    # Assets
    js = Bundle('js/vendor/jquery-1.11.0.min.js',
                'js/vendor/underscore-min.js',
                'js/vendor/bootstrap.min.js',
                'js/vendor/iframeResizer.min.js',
                'js/vendor/clipboard.js',
                'js/common.js',
                'js/main.js',
                filters='jsmin', output='js/bundle.js')

    css = Bundle('css/bootstrap.min.css',
                 'css/scielo-portal.css',
                 'css/style.css',
                 filters='cssmin', output='css/bundle.css')

    assets.register('js_all', js)
    assets.register('css_all', css)
    assets.init_app(app)
    # i18n
    babel.init_app(app)
    # Debug Toolbar
    if app.config['DEBUG']:
        # Toolbar
        from flask_debugtoolbar import DebugToolbarExtension
        toolbar = DebugToolbarExtension()
        toolbar.init_app(app)
    # Mongo
    dbmongo.init_app(app)
    # SQLAlchemy
    dbsql.init_app(app)
    # Emails
    mail.init_app(app)

    # Interface do admin
    from .models import User, File, Image
    # from .admin import views
    from webapp.admin import views

    admin = flask_admin.Admin(
        app, 'OPAC admin',
        index_view=views.AdminIndexView(),
        template_mode='bootstrap3',
        base_template="admin/opac_base.html")

    admin.add_view(views.CollectionAdminView(Collection, category=lazy_gettext(u'Catálogo'), name=lazy_gettext(u'Coleção')))
    admin.add_view(views.SponsorAdminView(Sponsor, category=lazy_gettext(u'Catálogo'), name=lazy_gettext(u'Financiador')))
    admin.add_view(views.JournalAdminView(Journal, category=lazy_gettext(u'Catálogo'), name=lazy_gettext(u'Periódico')))
    admin.add_view(views.IssueAdminView(Issue, category=lazy_gettext(u'Catálogo'), name=lazy_gettext(u'Fascículo')))
    admin.add_view(views.ArticleAdminView(Article, category=lazy_gettext(u'Catálogo'), name=lazy_gettext(u'Artigo')))
    admin.add_view(views.PressReleaseAdminView(PressRelease, category=lazy_gettext(u'Catálogo'), name=lazy_gettext(u'Press Release')))
    admin.add_view(views.ResourceAdminView(Resource, category=lazy_gettext(u'Catálogo'), name=lazy_gettext(u'Recursos')))
    admin.add_view(views.NewsAdminView(News, category=lazy_gettext(u'Notícias'), name=lazy_gettext(u'Notícias')))
    admin.add_view(views.FileAdminView(File, dbsql.session, category=lazy_gettext(u'Ativos')))
    admin.add_view(views.ImageAdminView(Image, dbsql.session, category=lazy_gettext(u'Ativos')))
    admin.add_view(views.PagesAdminView(Pages, category=lazy_gettext(u'Ativos'), name=lazy_gettext(u'Páginas')))
    admin.add_view(views.UserAdminView(User, dbsql.session, category=lazy_gettext(u'Gestão'), name=lazy_gettext(u'Usuário')))

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

    app.wsgi_app = ProxyFix(app.wsgi_app)

    return app
Esempio n. 41
0
from flask_api_app.extensions import oauth

app = FlaskApiApp(__name__)

app.config['SECRET_KEY'] = '123456790'

# Create in-memory database
app.config['DATABASE_FILE'] = 'sample_db.sqlite'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + app.config['DATABASE_FILE']
app.config['SQLALCHEMY_ECHO'] = True

app.init_extensions()
db.init_app(app)

debug_toolbar = DebugToolbarExtension()
debug_toolbar.init_app(app)


@api.route('/sample1')
@oauth.require_oauth('email')
def handle_sample1():
    return jsonify({'hello': 'world'})


app.register_core_blueprint(api=api, api_url_prefix='/api/v1.0')


def build_sample_db():
    """
    Populate a small db with some example entries.
    """
Esempio n. 42
0
    app = Flask('weblab.core.server')
    app.config['SECRET_KEY'] = os.urandom(32)
    app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False
    app.config['DEBUG'] = True

    @app.route("/site-map")
    def site_map():
        lines = []
        for rule in app.url_map.iter_rules():
            line = str(escape(repr(rule)))
            lines.append(line)

        ret = "<br>".join(lines)
        return ret

    admin_app = AdministrationApplication(app, cfg_manager, ups, bypass_authz = True)

    @admin_app.app.route('/')
    def index():
        return redirect('/weblab/admin')
    
    initialize_i18n(app)

    toolbar = DebugToolbarExtension()
    toolbar.init_app(app)

    print("Open: http://localhost:5000/weblab/admin/")
    app.run(debug=True, host='0.0.0.0')

    app.config['SQLALCHEMY_RECORD_QUERIES'] = True
    app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False
    app.logger.addHandler(logging.StreamHandler(sys.stdout))
    app.logger.setLevel(logging.INFO)
    # logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)

    admin_view = AdminView("Open Event")
    admin_view.init(app)
    admin_view.init_login(app)

    return app, manager, db


@app.errorhandler(404)
def page_not_found(e):
    if request_wants_json():
        return json.dumps({"error": "endpoint_not_found"})
    return render_template('404.html'), 404


# taken from http://flask.pocoo.org/snippets/45/
def request_wants_json():
    best = request.accept_mimetypes.best_match(
        ['application/json', 'text/html'])
    return best == 'application/json' and \
        request.accept_mimetypes[best] > \
        request.accept_mimetypes['text/html']

current_app, manager, database = create_app()
toolbar.init_app(current_app)
Esempio n. 44
0
    def __init__(self, server, cfg_manager):
        core_server_url  = cfg_manager.get_value( 'core_server_url', '' )
        self.script_name = urlparse.urlparse(core_server_url).path.split('/weblab')[0] or ''

        self.app = Flask('weblab.core.wl')
        self.app.config['SECRET_KEY'] = os.urandom(32)
        self.app.config['APPLICATION_ROOT'] = self.script_name
        self.app.config['SESSION_COOKIE_PATH'] = self.script_name + '/weblab/'
        self.app.config['SESSION_COOKIE_NAME'] = 'weblabsession'

        # Initialize internationalization code.
        initialize_i18n(self.app)

        # Mostly for debugging purposes, this snippet will print the site-map so that we can check
        # which methods we are routing.
        @self.app.route("/site-map")
        def site_map():
            lines = []
            for rule in self.app.url_map.iter_rules():
                line = str(escape(repr(rule)))
                lines.append(line)

            ret = "<br>".join(lines)
            return ret


        flask_debug = cfg_manager.get_value('flask_debug', False)
        core_facade_port = cfg_manager.get_value(configuration_doc.CORE_FACADE_PORT, 'unknown')
        if flask_debug and not is_testing():
            print("*" * 50, file=sys.stderr)
            print("WARNING " * 5, file=sys.stderr)
            print("flask_debug is set to True. This is an important security leak. Do not use it in production, only for bugfixing!!!", file=sys.stderr)
            print("If you want to see the debug toolbar in Flask pages, also use http://localhost:{0}/weblab/".format(core_facade_port), file=sys.stderr)
            print("WARNING " * 5, file=sys.stderr)
            print("*" * 50, file=sys.stderr)
        self.app.config['DEBUG'] = flask_debug
        if os.path.exists('logs'):
            f = os.path.join('logs','admin_app.log')
        else:
            f = 'admin_app.log'
        file_handler = RotatingFileHandler(f, maxBytes = 50 * 1024 * 1024)
        file_handler.setLevel(logging.WARNING)
        self.app.logger.addHandler(file_handler)

        super(WebLabFlaskServer, self).__init__(cfg_manager, self.app)

        json_api = Blueprint('json', __name__)
        weblab_api.apply_routes_api(json_api, server)
        self.app.register_blueprint(json_api, url_prefix = '/weblab/json')
        self.app.register_blueprint(json_api, url_prefix = '/weblab/login/json')
 
        authn_web = Blueprint('login_web', __name__)
        weblab_api.apply_routes_login_web(authn_web, server)
        self.app.register_blueprint(authn_web, url_prefix = '/weblab/login/web')

        static_folder = os.path.abspath(os.path.join(os.path.dirname(__file__), 'static'))
        core_web = Blueprint('core_web', __name__, static_folder=static_folder)
        weblab_api.apply_routes_web(core_web, server)
        self.app.register_blueprint(core_web, url_prefix = '/weblab/web')

        # Register the blueprint for the new (year 2015) flask-based web client.
        # The .apply_routes_webclient method is dynamically generated, the name matches
        # that in the wl.py module.
        # Attempt at setting the right static folder.
        core_webclient = Blueprint('core_webclient', __name__, static_folder=static_folder)
        weblab_api.apply_routes_webclient(core_webclient, server)
        self.app.register_blueprint(core_webclient, url_prefix = '/weblab/web/webclient')

        @self.app.context_processor
        def inject_weblab_api():
            return dict(weblab_api=weblab_api)

        self.admin_app = AdministrationApplication(self.app, cfg_manager, server)

        if flask_debug:
            from flask_debugtoolbar import DebugToolbarExtension
            toolbar = DebugToolbarExtension()
            toolbar.init_app(self.app)
            self.app.config['DEBUG_TB_INTERCEPT_REDIRECTS'] = False
            self.app.config['DEBUG_TB_PROFILER_ENABLED'] = True