def create_app(object_name): """ An flask application factory, as explained here: http://flask.pocoo.org/docs/patterns/appfactories/ Arguments: object_name: the python path of the config object, e.g. appname.settings.ProdConfig """ app = Flask(__name__) app.config.from_object(object_name) # initialize the cache cache.init_app(app) # initialize the debug tool bar debug_toolbar.init_app(app) # initialize SQLAlchemy db.init_app(app) login_manager.init_app(app) # Import and register the different asset bundles assets_env.init_app(app) assets_loader = PythonAssetsLoader(assets) for name, bundle in assets_loader.load_bundles().items(): assets_env.register(name, bundle) # register our blueprints app.register_blueprint(main) return app
def create_app(config='', **config_kwargs): """ An flask application factory, as explained here: http://flask.pocoo.org/docs/patterns/appfactories/ Arguments: config: the path of config file config_kwargs: overrides Default config read from appname/config_default.py See FiftyFlask docs """ app = Flask(__name__) config = config if os.path.isfile(config) else None app.configure(config, **config_kwargs) # Cache cache.init_app(app) # Logging app.logger.addHandler(logging.StreamHandler(sys.stderr)) # Debug toolbar debug_toolbar.init_app(app) # SQLAlchemy db.init_app(app) # Flask Login login_manager.init_app(app) # FiftyTables FiftyTables(app) # Alembic migrate.init_app(app, db) # Import and register the different asset bundles assets_env.init_app(app) assets_loader = PythonAssetsLoader(assets) for name, bundle in assets_loader.load_bundles().iteritems(): assets_env.register(name, bundle) # Register our blueprints from controllers import main, widgets app.register_blueprint(main.main_bp) app.register_blueprint(widgets.widgets_bp) # Jinja extensions app.jinja_env.add_extension('jinja2.ext.do') app.jinja_env.add_extension('jinja2.ext.loopcontrols') return app
def create_app(object_name, env="prod"): """ An flask application factory, as explained here: http://flask.pocoo.org/docs/patterns/appfactories/ Arguments: object_name: the python path of the config object, e.g. appname.settings.ProdConfig env: The name of the current environment, e.g. prod or dev """ app = Flask(__name__) app.config.from_object(object_name) app.config['ENV'] = env # initialize the cache cache.init_app(app) # initialize the debug tool bar debug_toolbar.init_app(app) # initialize SQLAlchemy db.init_app(app) mail = Mail(app) security = Security(app, user_datastore) @security.context_processor def security_context_processor(): return dict( admin_base_template=admin.base_template, admin_view=admin.index_view, h=admin_helpers, ) admin.init_app(app) # Import and register the different asset bundles assets_env.init_app(app) assets_loader = PythonAssetsLoader(assets) for name, bundle in assets_loader.load_bundles().items(): assets_env.register(name, bundle) # register our blueprints app.register_blueprint(main) return app
def register_extensions(app): # init the cache cache.init_app(app) # init debug toolbar debug_toolbar.init_app(app) # init SQLAlchemy db.init_app(app) # init login manager login_manager.init_app(app) # Import and register the different asset bundles assets_env.init_app(app) assets_loader = PythonAssetsLoader(assets) for name, bundle in assets_loader.load_bundles().iteritems(): assets_env.register(name, bundle)
def create_app(object_name): """ An flask application factory, as explained here: http://flask.pocoo.org/docs/patterns/appfactories/ Arguments: object_name: the python path of the config object, e.g. appname.settings.ProdConfig """ app = Flask(__name__) @app.route('/uploads/<filename>') def uploaded_file(filename): return send_from_directory('/home/ahmad/workspace/python/Flask-CRUD/uploads/', filename) Bootstrap(app) app.config.from_object(object_name) # initialize the cache cache.init_app(app) # initialize the debug tool bar debug_toolbar.init_app(app) # initialize SQLAlchemy db.init_app(app) db.app = app login_manager.init_app(app) # Import and register the different asset bundles assets_env.init_app(app) with app.app_context(): assets_env.load_path = [ os.path.join(os.path.join(os.path.dirname(__file__), os.pardir), 'node_modules'), os.path.join(os.path.dirname(__file__), 'static'), ] assets_loader = PythonAssetsLoader(assets) for name, bundle in assets_loader.load_bundles().items(): assets_env.register(name, bundle) # register our blueprints app.register_blueprint(main) app.register_blueprint(categories) app.register_blueprint(products) app.register_blueprint(catalogs) return app
def create_app(object_name, env="prod"): """ An flask application factory, as explained here: http://flask.pocoo.org/docs/patterns/appfactories/ Arguments: object_name: the python path of the config object, e.g. appname.settings.ProdConfig env: The name of the current environment, e.g. prod or dev """ app = Flask(__name__) app.config.from_object(object_name) app.config['ENV'] = env #init the cache cache.init_app(app) debug_toolbar.init_app(app) #init SQLAlchemy db.init_app(app) login_manager.init_app(app) # Import and register the different asset bundles assets_env.init_app(app) assets_loader = PythonAssetsLoader(assets) for name, bundle in assets_loader.load_bundles().iteritems(): assets_env.register(name, bundle) # register our blueprints from controllers.main import main app.register_blueprint(main) return app
def create_app(object_name): """ An flask application factory, as explained here: http://flask.pocoo.org/docs/patterns/appfactories/ Arguments: object_name: the python path of the config object, e.g. appname.settings.ProdConfig """ app = Flask(__name__) app.config.from_object(object_name) # initialize the cache cache.init_app(app) # initialize the debug tool bar debug_toolbar.init_app(app) # initialize SQLAlchemy db.init_app(app) # initalize Flask Login login_manager.init_app(app) # initialize Flask-RQ2 (job queue) rq2.init_app(app) # CSRF Protection csrf.init_app(app) # File Storage storage.init_app(app) # Special URL converters custom_converters.init_app(app) token.init_app(app) mail.init_app(app) limiter.init_app(app) stripe.init_app(app) hashids.init_app(app) if app.config.get('SENTRY_DSN') and not app.debug: sentry.init_app(app, dsn=app.config.get('SENTRY_DSN')) @app.errorhandler(500) def internal_server_error(error): return render_template( 'errors/500.html', event_id=g.sentry_event_id, public_dsn=sentry.client.get_public_dsn('https')), 500 @app.errorhandler(404) def not_found_error(error): if request.path.startswith("/api"): return handle_api_error(error) return render_template('errors/404.html'), 404 @app.errorhandler(401) def permission_denied_error(error): if request.path.startswith("/api"): return handle_api_error(error) return render_template('tabler/401.html'), 401 @app.before_request def check_for_confirmation(*args, **kwargs): pass # TODO: Check later. # if REQUIRE_EMAIL_CONFIRMATION: # # If we have a logged in user, we can check if they have confirmed their email or not. # if not current_user.is_authenticated or current_user.email_confirmed: # return # resend_confirm_link = url_for('auth.resend_confirmation') # text = Markup( # 'Please confirm your email. ' # '<a href="{}" class="alert-link">Click here to resend</a>'.format(resend_confirm_link)) # flash(text, 'warning') # Import and register the different asset bundles assets_env.init_app(app) assets_loader = PythonAssetsLoader(assets) for name, bundle in assets_loader.load_bundles().items(): assets_env.register(name, bundle) # Set some globals for Jinja templating app.jinja_env.globals.update({ 'utils': utils, 'view_helpers': view_helpers, 'debug': app.debug, 'constants': constants, 'simple_form': SimpleForm, 'features': { 'oauth': app.config["GOOGLE_OAUTH_CLIENT_ID"] != 'bad_key', 'segment': app.config["SEGMENT_ANALYTICS_KEY"], }, }) # register our blueprints app.register_blueprint(main) app.register_blueprint(auth) app.register_blueprint(google_blueprint, url_prefix='/oauth') app.register_blueprint(store) app.register_blueprint(settings_blueprint) # Register user dashboard blueprints for blueprint in dashboard_blueprints: app.register_blueprint(blueprint, url_prefix='/dashboard') # API app.register_blueprint(api_blueprint, url_prefix='/api') csrf.exempt(api_blueprint) app.register_blueprint(stripe_blueprint, url_prefix='/webhooks') csrf.exempt(stripe_blueprint) # Admin Tools app.register_blueprint(jobs, url_prefix='/admin/rq') admin.init_app(app) # If you use websockets/realtime features # socketio.init_app(app) return app
def create_app(object_name): """ An flask application factory, as explained here: http://flask.pocoo.org/docs/patterns/appfactories/ Arguments: object_name: the python path of the config object, e.g. appname.settings.ProdConfig """ app = Flask(__name__) app.config.from_object(object_name) # initialize the cache cache.init_app(app) # initialize the debug tool bar debug_toolbar.init_app(app) # initialize SQLAlchemy db.init_app(app) # initalize Flask Login login_manager.init_app(app) # initialize Flask-RQ2 (job queue) rq2.init_app(app) token.init_app(app) mail.init_app(app) limiter.init_app(app) stripe.init_app(app) if app.config.get('SENTRY_DSN') and not app.debug: sentry.init_app(app, dsn=app.config.get('SENTRY_DSN')) @app.errorhandler(500) def internal_server_error(error): return render_template( 'errors/500.html', event_id=g.sentry_event_id, public_dsn=sentry.client.get_public_dsn('https')), 500 @app.errorhandler(404) def not_found_error(error): if request.path.startswith("/api"): return api_blueprint.handle_error(error) return render_template('errors/404.html'), 404 # Import and register the different asset bundles assets_env.init_app(app) assets_loader = PythonAssetsLoader(assets) for name, bundle in assets_loader.load_bundles().items(): assets_env.register(name, bundle) # Set some globals for Jinja templating app.jinja_env.globals.update({'utils': utils, 'debug': app.debug}) # register our blueprints app.register_blueprint(main) app.register_blueprint(auth) app.register_blueprint(dashboard) app.register_blueprint(store) app.register_blueprint(api_blueprint, url_prefix='/api') app.register_blueprint(oauth_client, url_prefix='/oauth') # Admin Tools app.register_blueprint(jobs, url_prefix='/admin/rq') admin.init_app(app) # If you use websockets/realtime features # socketio.init_app(app) return app