Zachowanie globalnego stanu w aplikacji kolby
Próbuję zapisać słownik pamięci podręcznej w moimflask
podanie.
Z tego co rozumiemKontekst aplikacji, w szczególnościobiekt flask.g należy do tego użyć.
Ustawiać:
import flask as f
app = f.Flask(__name__)
Jeśli teraz:
with app.app_context():
f.g.foo = "bar"
print f.g.foo
Drukujebar
.
Kontynuując następujące czynności:
with app.app_context():
print f.g.foo
AttributeError: '_AppCtxGlobals' object has no attribute 'foo'
Nie rozumiem tego i doktorzy wcale nie pomagają. Jeśli poprawnie je odczytam, stan powinien zostać zachowany.
Inny pomysł Miałem po prostu użyć zmiennych obejmujących cały moduł:
cache = {}
def some_function():
cache['foo'] = "bar"
Ale wygląda na to, że są one resetowane przy każdym żądaniu.
Jak to zrobić poprawnie?
Edytować: Kolba 10.1