tl;dr
In your example, it'll be stored in-memory of the Python interpreter.
Your setup is in-memory, so it won't scale between multiple servers. However, you have the option to specify a different cache backend (memcached or Redis, for example, or even your own custom one by extending the base cache class).
According to the docs we see that it uses werkzeug:
Besides providing support for all of werkzeug‘s supported caching backends through a uniformed API
Then when you look at the werkzeug cache docs:
If you are using the development server you can create a SimpleCache object, that one is a simple cache that keeps the item stored in the memory of the Python interpreter.
And then it goes on to show an example using your same setup ({'CACHE_TYPE': 'simple'}
), which it says is in-memory of the Python interpreter.
If you wanna use a different cache backend, look at Configuring Flask Caching:
Built-in cache types:
null: NullCache (default)
simple: SimpleCache
memcached: MemcachedCache (pylibmc or memcache required)
gaememcached: GAEMemcachedCache
redis: RedisCache (Werkzeug 0.7 required)
filesystem: FileSystemCache
saslmemcached: SASLMemcachedCache (pylibmc required)