Flask 缓存项目中的多个文件

Qub*_*uba 8 python caching flask

我对 Flask 比较陌生。我的烧瓶项目中有多个文件。到目前为止,我一直在使用current_appif 我想appapp.py文件外部访问对象。

现在我正在尝试使用Flask-caching扩展向我的应用程序添加缓存。我在我的app.py

from flask_caching import Cache
...
cache = Cache(app, config={'CACHE_TYPE': 'simple'})
Run Code Online (Sandbox Code Playgroud)

但是我在使用views.py文件时遇到了麻烦。

我有一个资源类:

class MyEndpoint(Resource):
    def get(self):
        do_stuff_here
Run Code Online (Sandbox Code Playgroud)

我不知道如何在cache此处获取对象以实现此目的:

class MyEndpoint(Resource):
    @cache.cached(timeout=600)
    def get(self):
        do_stuff_here
Run Code Online (Sandbox Code Playgroud)

我试图做:

  • from app import cache -> ImportError: cannot import name 'cache'
  • @current_app.cache.cached -> RuntimeError: Working outside of application context.

我的项目结构的一部分:

|
-app.py
|
--api
  |
  -__init__.py
  -views.py
Run Code Online (Sandbox Code Playgroud)

Qub*_*uba 19

我让它工作了。只需在不同的文件中初始化 Cache 对象:

common/extensions.py

from flask_caching import Cache

cache = Cache() 
Run Code Online (Sandbox Code Playgroud)

然后在app.py

from common.extensions import cache
app = Flask(__name__)
cache.init_app(app, config={'CACHE_TYPE': 'simple'})
Run Code Online (Sandbox Code Playgroud)