Preservando el estado global en una aplicación matraz

Estoy tratando de guardar un diccionario de caché en miflask solicitud.

Por lo que yo entiendo, elContexto de aplicación, en particular elflask.g objeto debe ser utilizado para esto.

Preparar:

import flask as f

app = f.Flask(__name__)

Ahora si lo hago:

with app.app_context():
    f.g.foo = "bar"
    print f.g.foo

Se imprimebar.

Continuando con lo siguiente:

with app.app_context():
    print f.g.foo

AttributeError: '_AppCtxGlobals' object has no attribute 'foo'

No lo entiendo y los documentos no están ayudando en absoluto. Si los leo correctamente, el estado debería haber sido preservado.

Otra idea Tuve fue simplemente utilizar variables de módulo de todo:

cache = {}

def some_function():
    cache['foo'] = "bar"

Pero parece que estos se restablecen con cada solicitud.

¿Cómo hacer esto correctamente?

Editar: Frasco 10.1

Respuestas a la pregunta(3)

Su respuesta a la pregunta