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
cheerzeng
V2EX  ›  Python

[请教] 关于 Django 中 cache 的用法

  •  
  •   cheerzeng · 2015-05-24 23:23:23 +08:00 · 4268 次点击
    这是一个创建于 3479 天前的主题,其中的信息可能已经有所发展或是发生改变。
    大家好,请教一下,下面这段django cache 的后面的else逻辑是怎么实现的

    given a URL, try finding that page in the cache
    if the page is in the cache:
    return the cached page
    else:
    generate the page
    save the generated page in the cache (for next time)
    return the generated page

    就是我现在第一个页面有有需要用户填的表单,填完之后,有个预览的按钮,跳转到预览页面之后,我想再通过一个按钮返回第一个页面,那么是否可以用上面的这个逻辑来实现?要怎样进行页面的cache保存与返回 呢?
    13 条回复    2015-05-26 09:57:16 +08:00
    czheo
        1
    czheo  
       2015-05-24 23:32:35 +08:00
    你需要这个?
    ``` js
    window.history.go(-1)
    ```
    tidewind
        2
    tidewind  
       2015-05-24 23:40:53 +08:00
    跟django,cache都没关系

    预览页面要么用modal窗口,要么用js的cookie存储表单数据在预览页面显示
    cheerzeng
        3
    cheerzeng  
    OP
       2015-05-24 23:42:32 +08:00
    @czheo 是的,这个就是我要的效果,先谢谢啦。
    但是我还是想弄明白Django的cache是怎样缓存一个page的,你了解吗?
    cheerzeng
        4
    cheerzeng  
    OP
       2015-05-24 23:44:10 +08:00
    @tidewind 我知道是通用的,因为我现在用的就是django,所以想了解关于它的cache是怎么缓存一个页面的。
    js的cookie应该也是OK的,就是不知道如果用cache的话是如何实现
    tidewind
        5
    tidewind  
       2015-05-25 01:01:07 +08:00
    @cheerzeng 你只是想知道django怎么在view里使用cache吗?那看官方文档就好了。

    https://docs.djangoproject.com/en/1.8/topics/cache/#the-per-view-cache
    tidewind
        6
    tidewind  
       2015-05-25 01:04:42 +08:00
    @cheerzeng 如果你想借助这个cache来完成你想做的事情,其实会比较累,首先用户填写的数据需要提交到服务端,再由view缓存起来,然后你需要再在模板里用{% load cache %}之类的标记来加载这些缓存数据。
    geeklian
        7
    geeklian  
       2015-05-25 08:01:03 +08:00 via iPhone
    per page cache太难用了...

    上手的话直接cachalot 这种傻瓜的orm缓存就ok了...
    cheerzeng
        8
    cheerzeng  
    OP
       2015-05-25 14:22:07 +08:00
    @tidewind 这个我大概看过了,好像没有我这种用法,所以我怀疑是不是我的场景不能用这个cache, 晚上再细看一下。
    cheerzeng
        9
    cheerzeng  
    OP
       2015-05-25 14:23:43 +08:00
    @tidewind 之前是想用cache来做,现在的话,可能直接用一楼的js就好了,其实也不一定要用这个,就是刚好不懂,就想弄明白,至于有更简单常用的,肯定就用那种
    cheerzeng
        10
    cheerzeng  
    OP
       2015-05-25 14:24:19 +08:00
    @geeklian 酱紫,我谷歌一下cachalot
    geeklian
        12
    geeklian  
       2015-05-25 23:48:59 +08:00
    @cheerzeng
    https://pypi.python.org/pypi/django-cache-machine

    三个....都是傻瓜的orm cache...

    django-cache-machine不支持python3..
    cheerzeng
        13
    cheerzeng  
    OP
       2015-05-26 09:57:16 +08:00
    @geeklian 谢谢,我回头看看。用的2.7
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1002 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 19:10 · PVG 03:10 · LAX 11:10 · JFK 14:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.