V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
rogwan
V2EX  ›  Python

Python Web: Flask-Cache 怎么缓存动态内容呢?

  •  
  •   rogwan · 2017-01-26 16:57:39 +08:00 · 2456 次点击
    这是一个创建于 2860 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看了一下 Flask-Cache 的文档,比如:

    from flask import Flask
    from flask.ext.cache import Cache
    
    app = Flask(__name__)
    # Check Configuring Flask-Cache section for more details 
    cache = Cache(app,config={'CACHE_TYPE': 'simple'})
    
    cache = Cache(config={'CACHE_TYPE': 'simple'})
    # cache = Cache(app, config={'CACHE_TYPE': 'redis'})
    
    app = Flask(__name__)
    cache.init_app(app)
    

    然后缓存视图函数:

    @cache.cached(timeout=50)
    def index():
        return render_template('index.html')
    

    两个疑问:

    1 、如果这个视图函数 index()是动态的内容,比如是用户的 Newsfeed 聚合页,这个 cache 是缓存每一个用户的 index 内容吗?

    2 、文档里简单提到,在 config 里( Werkzeug 0.7 以上版本即可),可以把 CACHE_TYPE 的 simple 改用 redis 来代替,这个 redis 的缓存数据,可以通过 SQLAlchemy 从 MySQL 加载部分需要缓存的数据吗?

    原链接:
    http://www.pythondoc.com/flask-cache/index.html#flask.ext.cache.Cache.memoize
    http://stackoverflow.com/questions/24589123/how-to-cache-sql-alchemy-calls-with-flask-cache-and-redis

    4 条回复    2017-01-27 05:50:29 +08:00
    strahe
        1
    strahe  
       2017-01-26 20:00:33 +08:00
    我记得这个只能缓存静态页,不知道是不是记错了,建议自己写一个缓存封装,
    xyjtou
        2
    xyjtou  
       2017-01-26 21:16:39 +08:00
    1 、动态的内容也可以缓存,但是如果有更新的话,在缓存过期之前,是不会加载更新的内容。
    2 、 redis 是 nosql 数据库,不能直接从 MySQL 直接加载数据,需要程序转换。
    ke1e
        3
    ke1e  
       2017-01-26 23:17:58 +08:00 via Android
    聪 mysql 加载就不是缓存了,最好还是不要缓存视图
    ericls
        4
    ericls  
       2017-01-27 05:50:29 +08:00
    不同的用户用不同的 key
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1012 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:10 · PVG 05:10 · LAX 13:10 · JFK 16:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.