def create_app(config_name): app.config.from_object(config[config_name]) config[config_name].init_app(app) db.init_app(app) mail.init_app(app) cors.init_app(app) cache.init_app(app) jwt.init_app(app) redis.init_app(app) # rbac.init_app(app) fs.init_app(app, *storages.values()) TaskBase = celery.Task class ContextTask(TaskBase): abstract = True def __call__(self, *args, **kwargs): with app.app_context(): return TaskBase.__call__(self, *args, **kwargs) celery.Task = ContextTask # celery.conf.update(app.config) from .api.v1 import blueprint as api app.register_blueprint(api, url_prefix="/api/v1") return app
def create_app(self): app = super(ImageFieldTest, self).create_app() self._instance_path = app.instance_path app.instance_path = tempfile.mkdtemp() fs.init_app(app, storage, tmp) app.register_blueprint(blueprint) return app
def setUp(self): super(MongoEngineTestCase, self).setUp() self.app.config['MONGODB_SETTINGS'] = {'DB': 'flask_fs_tests'} self._instance_path = self.app.instance_path self.app.instance_path = tempfile.mkdtemp() self.storage = fs.Storage('test', fs.ALL) fs.init_app(self.app, self.storage) db.init_app(self.app) self._ctx = self.app.test_request_context() self._ctx.push()
def storage(self, app, tmpdir): app.instance_path = str(tmpdir) storage = fs.Storage('test', fs.ALL) fs.init_app(app, storage) db.init_app(app) yield storage with app.test_request_context(): db_name = app.config['MONGODB_DB'] try: db.connection.client.drop_database(db_name) except TypeError: db.connection.drop_database(db_name)
def portolano(): class Configuration(metaclass=MetaFlaskEnv): DEBUG = False PORT = 5000 FLASK_FS_OVERWRITE = False # Flask fs shared configuration FS_LOCAL_ROOT = os.getcwd() # The file system root FS_S3_ENDPOINT = None # The S3 API endpoint FS_S3_REGION = None # The region to work on. FS_S3_ACCESS_KEY = None # The AWS credential access key FS_S3_SECRET_KEY = None # The AWS credential secret key FS_GRIDFS_MONGO_URL = None # The Mongo access URL FS_GRIDFS_MONGO_DB = None # The database to store the file in. FS_SWIFT_AUTHURL = None # The Swift Auth URL FS_SWIFT_USER = None # The Swift user in FS_SWIFT_KEY = None # The user API Key # Back end selection CHARTS_FS_BACKEND = 'local' CHARTS_FS_URL = "http://127.0.0.1:5000" specification_dir = os.path.join(os.path.dirname(__file__), 'api') connexion_app = connexion.App(__name__, specification_dir='api/') # Connexion initializtion connexion_app.add_api('api.yaml', resolver=RestyResolver('portolano.api')) app = connexion_app.app # Load the configuration from env var app.config.from_object(Configuration) # Storage initialization flask_fs.init_app(app) app.config['STORAGE'] = flask_fs.Storage( 'charts', ('tar', 'tgz'), overwrite=app.config['FLASK_FS_OVERWRITE']) app.config['STORAGE'].configure(app) return app
def init_app(app): if 'BUCKETS_PREFIX' not in app.config: app.config['BUCKETS_PREFIX'] = '/s' fs.init_app( app, resources, avatars, logos, images, chunks, tmp, references)
def configure(self, *storages, **configs): import flask_fs as fs for key, value in configs.items(): self.config[key] = value fs.init_app(self, *storages)
def init_app(app): if 'BUCKETS_PREFIX' not in app.config: app.config['BUCKETS_PREFIX'] = '/s' fs.init_app(app, resources, avatars, logos, images, chunks, tmp, references)
if not app.config["FILE_TREE_FOLDER"]: # Default file_trees are included in Python package: use root_path app.config["FILE_TREE_FOLDER"] = os.path.join(app.root_path, "file_trees") if not app.config["PREVIEW_FOLDER"]: app.config["PREVIEW_FOLDER"] = os.path.join(app.instance_path, "previews") db = SQLAlchemy(app) migrate = Migrate(app, db) # DB schema migration features app.secret_key = app.config["SECRET_KEY"] jwt = JWTManager(app) # JWT auth tokens Principal(app) # Permissions cache.cache.init_app(app) # Function caching flask_fs.init_app(app) # To save files in object storage mail = Mail() mail.init_app(app) # To send emails @app.teardown_appcontext def shutdown_session(exception=None): db.session.remove() @app.errorhandler(404) def page_not_found(error): return jsonify(error=True, message=str(error)), 404 @app.errorhandler(WrongIdFormatException)
def fs_root(self, instance_path, app): app.config['FS_ROOT'] = str(instance_path / 'fs') fs.init_app(app, storage, tmp)