Python 在webpy中使用Flask缓存。我犯了一个错误<;类型';异常。运行时错误'&燃气轮机;在xx,在请求上下文之外工作

Python 在webpy中使用Flask缓存。我犯了一个错误<;类型';异常。运行时错误'&燃气轮机;在xx,在请求上下文之外工作,python,caching,web.py,Python,Caching,Web.py,初始缓存对象代码如下所示: pageCache = Cache() cacheDir = os.path.join(path.dirname(path.dirname(__file__)),'pageCache') pageCache.init_app(flaskApp,config={'CACHE_TYPE': 'filesystem','CACHE_THRESHOLD':1>>10>>10,'CACHE_DIR': cacheDir }) class CodeLis

初始缓存对象代码如下所示:

pageCache = Cache()
cacheDir = os.path.join(path.dirname(path.dirname(__file__)),'pageCache')
pageCache.init_app(flaskApp,config={'CACHE_TYPE': 'filesystem','CACHE_THRESHOLD':1>>10>>10,'CACHE_DIR': cacheDir })
class CodeList:
    """
    show code list
    """
    @pageCache.cached(timeout=60)
    def GET(self):
        i = web.input()
        sort = i.get('sort','newest')
        pageNo = int(i.get('page','1'))
        if i.get('pageSize'):
            pageSize = int(i.get('pageSize'))
        else:
            pageSize = DEFAULT_LIST_PAGE_SIZE
        if pageSize > 50:
            pageSize = 50
        items = csModel.getCodeList(sort=sort,pageNo=pageNo,pageSize=pageSize)
        totalCount = csModel.getCodeCount()
        pageInfo = (pageNo,pageSize,totalCount)
        return render.code.list(items,pageInfo)
我使用pageCache的方式如下:

pageCache = Cache()
cacheDir = os.path.join(path.dirname(path.dirname(__file__)),'pageCache')
pageCache.init_app(flaskApp,config={'CACHE_TYPE': 'filesystem','CACHE_THRESHOLD':1>>10>>10,'CACHE_DIR': cacheDir })
class CodeList:
    """
    show code list
    """
    @pageCache.cached(timeout=60)
    def GET(self):
        i = web.input()
        sort = i.get('sort','newest')
        pageNo = int(i.get('page','1'))
        if i.get('pageSize'):
            pageSize = int(i.get('pageSize'))
        else:
            pageSize = DEFAULT_LIST_PAGE_SIZE
        if pageSize > 50:
            pageSize = 50
        items = csModel.getCodeList(sort=sort,pageNo=pageNo,pageSize=pageSize)
        totalCount = csModel.getCodeCount()
        pageInfo = (pageNo,pageSize,totalCount)
        return render.code.list(items,pageInfo)
当我请求此页面时,我得到一个异常:

在/code snippet处键入“exceptions.RuntimeError”/ 在请求上下文之外工作

Python C:\Python27\lib\site packages\flask-0.9-py2.7.egg\flask\globals.py位于>\u lookup\u对象,第18行


烧瓶缓存顾名思义是烧瓶扩展。所以,若你们不使用烧瓶,就不能正确使用它


您可以改为使用Flask Cache—Flask Cache也在使用它。但是,根据您的需要,最好直接使用memcached,例如使用包装器(如
werkzeug.cache
)时,您会丢失缓存引擎的所有高级功能,因为它使用了相当简单/最低限度的API包装。

非常感谢。是否有webpy缓存扩展,我可以用作Flask缓存。