0

初期キャッシュ オブジェクト コードは次のとおりです。

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 })

次のように pageCache を使用します。

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 の >_lookup_object、18 行目

4

1 に答える 1

1

Flask-Cacheは、その名前が示すように、Flask拡張機能です。そのため、Flaskを使用しないと適切に使用できません。

代わりに使用できますwerkzeug.cache-Flask-Cacheも使用しています。ただし、ニーズによっては、たとえばmemcachedを直接使用することをお勧めします。たとえばwerkzeug.cache、キャッシュエンジンの高度な機能がすべて失われるなどのラッパーを使用する場合は、かなり単純で最小限のAPIでラップされているためです。

于 2012-10-17T07:01:45.293 に答える