Changelog

全名 页面 提交时间 (Descending) Unsort 内容 注释 ...
ySJ 2.0/chapter15/#381 2010-04-23 10:05:45 该函数设置或增加 Vary header ,例如:
ySJ 2.0/chapter15/#374 2010-04-23 09:54:31 由于根据 cookie 而区分对待是很常见的情况,因此有 <literal>vary_on_cookie</literal> 装饰器。
ySJ 2.0/chapter15/#366 2010-04-23 09:52:41 使用 <literal>vary_on_headers</literal> 装饰器而不是手动设置 <literal>Vary</literal> 头部(使用像 <literal>response['Vary'] = 'user-agent'</literal> 之类的代码)的好处是修饰器在(可能已经存在的) <emphasis>Vary</emphasis> 之上进行 <literal>添加</literal> ,而不是从零开始设置,且可能覆盖该处已经存在的设置。
ySJ 2.0/chapter15/#364 2010-04-23 09:51:02 在这种情况下,缓存机制(如 Django 自己的缓存中间件)将会为每一个单独的用户浏览器缓存一个独立的页面版本。
ySJ 2.0/chapter15/#361 2010-04-23 09:48:57 要在 Django 完成这项工作,可使用便利的 <literal>vary_on_headers</literal> 视图装饰器,如下所示:
ySJ 2.0/chapter15/#355 2010-04-23 09:48:37 <literal>Vary</literal> 头部定义了缓存机制在构建其缓存键值时应当将哪个请求头标考虑在内。
ySJ 2.0/chapter15/#353 2010-04-23 09:48:28 使用 Vary头部
ySJ 2.0/chapter15/#359 2010-04-23 09:48:15 除非你使用<literal>Vary</literal>头部通知缓存机制页面输出要依据请求头里的cookie,语言等的设置而不同。
ySJ 2.0/chapter15/#358 2010-04-23 09:45:45 缺省情况下,Django 的缓存系统使用所请求的路径(比如:<literal>"/stories/2005/jun/23/bank_robbed/"</literal> )来创建其缓存键。这意味着每次请求都会使用同样的缓存版本,不考虑才客户端cookie和语言配置的不同。
ySJ 2.0/chapter15/#328 2010-04-23 09:20:06 上游缓存。
ySJ 2.0/chapter15/#322 2010-04-22 17:28:27 然而,如果后端并不原生支持增减操作,也可以通过取值/更新两步操作来实现。
ySJ 2.0/chapter15/#321 2010-04-22 17:27:28 在支持原子增减的缓存后端上(最著名的是memcached),增减操作才是原子的。
ySJ 2.0/chapter15/#321 2010-04-22 17:27:03 在支持原子增减的缓存后台上(最著名的是memcached),增减操作才是原子的。
ySJ 2.0/chapter15/#320 2010-04-22 17:25:21 <literal>incr()</literal>/<literal>decr()</literal>方法不是原子操作。
ySJ 2.0/chapter15/#318 2010-04-22 17:24:17 注意
ySJ 2.0/chapter15/#315 2010-04-22 17:24:07 如果尝试增减不存在的键值会抛出ValueError。
ySJ 2.0/chapter15/#314 2010-04-22 17:23:28 默认情况下,增加或减少的值是1。可以用参数来制定其他值。
ySJ 2.0/chapter15/#313 2010-04-22 17:22:08 也可以使用<literal>incr()</literal>或者<literal>decr()</literal>来增加或者减少已经存在的键值。
ySJ 2.0/chapter15/#306 2010-04-22 17:20:52 还有个<literal>get_many()</literal>接口。
ySJ 2.0/chapter15/#306 2010-04-22 17:19:17 还有个<literal>get_many()</literal>
ySJ 2.0/chapter15/#304 2010-04-22 17:13:02 成功返回True,失败返回False。
ySJ 2.0/chapter15/#303 2010-04-22 17:12:29 如果想确定<literal>add()</literal>是否成功添加了缓存值,你应该测试返回值。
ySJ 2.0/chapter15/#300 2010-04-22 17:11:08 它接受的参数和<literal>set()</literal>一样,但是并不去尝试更新已经存在的键值。
ySJ 2.0/chapter15/#299 2010-04-22 17:09:51 使用<literal>add()</literal>方法来新增一个原来没有的键值。
ySJ 2.0/chapter15/#296 2010-04-22 17:08:26 它指定了当缓存中不存在该对象时所返回的值:
ySJ 2.0/chapter15/#293 2010-04-22 17:08:07 我们不建议在缓存中保存 <literal>None</literal> 常量,因为你将无法区分你保存的 <literal>None</literal> 变量及由返回值 <literal>None</literal> 所标识的缓存未命中。
ySJ 2.0/chapter15/#293 2010-04-22 17:07:55 我们不建议在缓存中保存 <literal>None</literal> 常量,因为你将无法区分你保存的 <literal>None</literal> 变量及由返回值 <literal>None</literal> 所标识的缓存未中。
ySJ 2.0/chapter15/#290 2010-04-22 17:07:08 如果缓存中不存在该对象,那么<literal>cache.get()</literal>会返回<literal>None</literal>
ySJ 2.0/chapter15/#282 2010-04-22 17:05:33 缓存模块<literal>django.core.cache</literal>拥有一个自动依据<literal>CACHE_BACKEND</literal>设置创建的<literal>django.core.cache</literal>对象。
ySJ 2.0/chapter15/#280 2010-04-22 17:03:34 (查阅 Python 文档可以了解到更多关于 pickling 的信息。)
ySJ 2.0/chapter15/#279 2010-04-22 17:03:20 字符串、字典和模型对象列表等等。
ySJ 2.0/chapter15/#277 2010-04-22 17:02:31 你可以通过这个API,以任何你需要的粒度来缓存对象。
ySJ 2.0/chapter15/#276 2010-04-22 17:00:09 针对这样的情况,Django提供了简单低级的缓存API。
ySJ 2.0/chapter15/#271 2010-04-22 16:58:03 有些时候,对整个经解析的页面进行缓存并不会给你带来太多好处,事实上可能会过犹不及。
ySJ 2.0/chapter15/#267 2010-04-22 16:56:17 可以把超时时间保存在变量里,然后在别的地方复用。
ySJ 2.0/chapter15/#266 2010-04-22 16:54:35 这个特性在避免模板重复方面非常有用。
ySJ 2.0/chapter15/#263 2010-04-22 16:53:59 例如,如果模板变量<literal>my_timeout</literal>值为600,那么以下两个例子是等价的。
ySJ 2.0/chapter15/#262 2010-04-22 16:52:54 缓存超时时间可以作为模板变量,只要它可以解析为整数值。
ySJ 2.0/chapter15/#260 2010-04-22 16:50:14 简单地把参数传给<literal>{% cache %}</literal>
ySJ 2.0/chapter15/#259 2010-04-22 16:49:42 传递不止一个参数也是可行的。
ySJ 2.0/chapter15/#256 2010-04-22 16:47:38 这样只需要给<literal>{% cache %}</literal>传递额外的参数以标识缓存片段。
ySJ 2.0/chapter15/#255 2010-04-22 16:45:17 比如,你想为上一个例子的每个用户分别缓存侧边栏。
ySJ 2.0/chapter15/#254 2010-04-22 16:43:55 有时你可能想缓存基于片段的动态内容的多份拷贝。
ySJ 2.0/chapter15/#250 2010-04-22 16:42:02 缓存超时时间(以秒计)和指定缓存片段的名称。
ySJ 2.0/chapter15/#248 2010-04-22 16:41:04 模板标签<literal>{% cache %}</literal>在给定的时间内缓存了块的内容。
ySJ 2.0/chapter15/#246 2010-04-22 16:39:54 在模板的顶端附近加入<literal>{% load cache %}</literal>以通知模板存取缓存标签。
ySJ 2.0/chapter15/#245 2010-04-22 16:38:00 你同样可以使用<literal>cache</literal>标签来缓存模板片段。
ySJ 2.0/chapter15/#241 2010-04-22 16:34:44 如果采取这种方法, 不要忘记在 URLconf 中导入 <literal>cache_page</literal>
ySJ 2.0/chapter15/#235 2010-04-22 16:34:03 这是之前的URLconf:
ySJ 2.0/chapter15/#213 2010-04-22 16:28:18 以秒计的缓存超时时间。
« < 7 8 9 10 11 12 13 > » 96 pages