xypmdxx
|
2.0/chapter15/#186 |
2009-12-17 22:44:16
|
CACHE_MIDDLEWARE_ANONYMOUS_ONLY,你应该确保你已经启动AuthenticationMiddleware。
|
|
xypmdxx
|
2.0/chapter15/#184 |
2009-12-17 22:43:34
|
或者,如果CACHE_MIDDLEWARE_ANONYMOUS_ONLY设置为True,只有匿名请求(即不是由登录的用户)将被缓存作出的声明。
|
|
xypmdxx
|
2.0/chapter15/#174 |
2009-12-17 22:42:56
|
的细节有点模糊,但看到下面的MIDDLEWARE_CLASSES订阅如果您想看到完整的故事。
|
|
xypmdxx
|
2.0/chapter15/#173 |
2009-12-17 22:41:47
|
中间件的更新,必须先在列表中,而获取的中间件,必须最后。
|
|
xypmdxx
|
2.0/chapter15/#172 |
2009-12-17 22:41:24
|
不,这不是一个错字:
|
|
xypmdxx
|
2.0/chapter15/#170 |
2009-12-17 22:40:54
|
注意:
|
|
xypmdxx
|
2.0/chapter15/#167 |
2009-12-17 22:40:31
|
您
需要添加'django.middleware.cache.UpdateCacheMiddleware'和
'django.middleware.cache.FetchFromCacheMiddleware'您的MIDDLEWARE_CLASSES设置,在这个例子为:
|
|
xypmdxx
|
2.0/chapter15/#147 |
2009-12-17 22:38:53
|
filesystemmax_entries:对于locmem,database和后端,在高速缓存允许的最大条目数之前的旧值将被删除。
|
|
xypmdxx
|
2.0/chapter15/#142 |
2009-12-17 22:37:50
|
有效参数如下:
|
|
xypmdxx
|
2.0/chapter15/#141 |
2009-12-17 22:36:49
|
他们给予查询字符串的CACHE_BACKEND设置样式。
|
|
xypmdxx
|
2.0/chapter15/#136 |
2009-12-17 22:35:59
|
他们一直行之有效,易于使用。
|
|
xypmdxx
|
2.0/chapter15/#135 |
2009-12-17 22:35:30
|
如果没有一个真正令人信服的理由,如主机不支持他们,你要坚持到缓存后端使用Django中。
|
|
xypmdxx
|
2.0/chapter15/#132 |
2009-12-17 22:34:48
|
django/core/cache/backends/你会发现在的Django的源目录。
|
|
xypmdxx
|
2.0/chapter15/#128 |
2009-12-17 22:33:58
|
要使用外部高速缓存与Django的后端,在最初使Python import 作为该计划的一部分(前部分的初步冒号)的CACHE_BACKEND URI的,像这样:
|
|
xypmdxx
|
2.0/chapter15/#127 |
2009-12-17 22:28:48
|
尽管Django的包括针对缓存的支持后端的即开即用,有时你可能想使用自定义缓存后端。
|
|
xypmdxx
|
2.0/chapter15/#125 |
2009-12-17 22:28:13
|
使用自定义缓存后端
|
|
xypmdxx
|
2.0/chapter15/#122 |
2009-12-17 22:27:51
|
要激活虚拟缓存,就像这样设置CACHE_BACKEND:
|
|
xypmdxx
|
2.0/chapter15/#121 |
2009-12-17 22:26:54
|
这是有用的,如果你有一个生产基地,使用在不同地方的重型缓存,但开发/测试环境中,你不想来缓存和不希望要改变您的代码的特殊情况后者。
|
|
xypmdxx
|
2.0/chapter15/#114 |
2009-12-17 22:26:21
|
这显然也意味着本地内存缓存并不特别记忆效率,所以它可能不是一个生产环境不错的选择。
|
|
xypmdxx
|
2.0/chapter15/#113 |
2009-12-17 22:25:30
|
请注意,每个进程都有自己的私自缓存实例,这意味着没有跨进程缓存是可能的。
|
|
xypmdxx
|
2.0/chapter15/#109 |
2009-12-17 22:24:42
|
此缓存的多进程和线程安全。
|
|
xypmdxx
|
2.0/chapter15/#104 |
2009-12-17 22:24:20
|
每个文件的名称是缓存键,除了文件系统使用的安全。
|
|
xypmdxx
|
2.0/chapter15/#101 |
2009-12-17 22:22:07
|
apache继续上面的例子,如果您的服务器运行作出的用户apache,确保目录/var/tmp/django_cache存在并且是可读和由用户可写。
|
|
xypmdxx
|
2.0/chapter15/#98 |
2009-12-17 22:20:46
|
它不管你放在设置的结束斜线。
|
|
xypmdxx
|
2.0/chapter15/#90 |
2009-12-17 22:20:03
|
要存储的文件系统缓存的项目,使用"file://"缓存类型CACHE_BACKEND。例如,缓存数据存储在/var/tmp/django_cache,使用此设置:
|
|
xypmdxx
|
2.0/chapter15/#94 |
2009-12-17 22:18:43
|
头两项是file://,第三个是第一个字符的目录路径,/var/tmp/django_cache。如果你是Windows,之后提出file://,这样文件的驱动器号:
|
|
xypmdxx
|
2.0/chapter15/#90 |
2009-12-17 22:16:42
|
要存储的文件系统缓存的项目,使用文件缓存类型“CACHE_BACKEND。例如,缓存数据存储在/ var / tmp/ django_cache,使用此设置:
|
|
xypmdxx
|
2.0/chapter15/#84 |
2009-12-17 22:14:18
|
您不能使用您的缓存表在不同的数据库后端。
|
|
xypmdxx
|
2.0/chapter15/#80 |
2009-12-17 22:12:07
|
在这个例子中,高速缓存表的名字是my_cache_table:
|
|
xypmdxx
|
2.0/chapter15/#77 |
2009-12-17 22:10:56
|
(此名称可以是任何你想的,只要它是一个有效的表名,这不是已经在您的数据库中使用。)此命令创建数据库中的一个表,在正确的格式,Django的数据库缓存系统所期望的。
|
|
xypmdxx
|
2.0/chapter15/#69 |
2009-12-17 22:09:43
|
毫无疑问,在Django的缓存后端都应该用于永久储存他们都拟用于缓存的解决方案,但我们不是储存指出此点,这里是因为基于内存的缓存尤其暂时的。
|
|
xypmdxx
|
2.0/chapter15/#68 |
2009-12-17 22:08:26
|
显然,内存不打算永久存储数据,因此不依赖基于内存缓存仅作为您的存储数据缓存。
|
|
xypmdxx
|
2.0/chapter15/#58 |
2009-12-17 22:07:29
|
要充分利用此功能,包括CACHE_BACKEND所有服务器的地址,用分号分隔。
|
|
xypmdxx
|
2.0/chapter15/#57 |
2009-12-17 22:06:46
|
这意味着您可以运行在多台机器Memcached的守护进程,该程序会当成一个单一缓存组机器,而无需重复每台机器上的缓存值。
|
|
xypmdxx
|
2.0/chapter15/#49 |
2009-12-17 22:05:54
|
如果您无法安装cmemcache,您可以安装python - Memcached,在ftp://ftp.tummy.com/pub/python-memcached/。如果该网址已不再有效,只要到Memcached的网站http://www.danga.com/memcached/),并从客户端API的Python绑定。
|
|
xypmdxx
|
2.0/chapter15/#51 |
2009-12-17 22:05:35
|
若要使用Memcached的Django,设置CACHE_BACKEND到memcached:/ / IP:port/,其中IP是Memcached的守护进程的IP地址和port的端口Memcached的运行。
|
|
xypmdxx
|
2.0/chapter15/#49 |
2009-12-17 22:02:56
|
如果您无法安装cmemcache,您可以安装python - Memcached,在ftp://ftp.tummy.com/pub/python-memcached/。如果该网址已不再有效,只要到Memcached的网站http://www.danga.com/memcached/),并从客户端API的Python绑定
|
|
xypmdxx
|
2.0/chapter15/#47 |
2009-12-17 22:01:05
|
最快的可用选项是一个模块,称为cmemcache,在http://gijsbert.org/cmemcache。
|
|
xypmdxx
|
2.0/chapter15/#45 |
2009-12-17 21:58:56
|
选择和安装以下模块之一:
|
|
xypmdxx
|
2.0/chapter15/#40 |
2009-12-17 21:58:11
|
它只是提供了添加,检索和删除缓存中的任意数据的高速接口。
|
|
xypmdxx
|
2.0/chapter15/#39 |
2009-12-17 21:57:18
|
Memcached在http://danga.com/memcached是免费的。它作为一个守护进程运行,并分配了特定数量的内存。
|
|
xypmdxx
|
2.0/chapter15/#37 |
2009-12-17 21:54:04
|
它的使用,如Facebook和维基百科网站,以减少数据库访问,并大幅提高站点的性能。
|
|
xypmdxx
|
2.0/chapter15/#36 |
2009-12-17 21:52:40
|
迄今为止最快,最有效的高速缓存可Django的类型,Memcached的是一个完全基于内存的缓存框架,最初开发来处理高负荷的LiveJournal.com并随后开放,由Danga Interactive公司采购。
|
|
xypmdxx
|
2.0/chapter15/#32 |
2009-12-17 21:50:16
|
这里是一个为CACHE_BACKEND所有可用的值解释
|
|
xypmdxx
|
2.0/chapter15/#29 |
2009-12-17 21:49:10
|
这是一个重要的决定,影响您的高速缓存的性能,是的,有些类型的缓存比其它类型快。
|
|
xypmdxx
|
2.0/chapter15/#28 |
2009-12-17 21:48:06
|
也就是说,你必须告诉它在您的缓存的数据是否应该存在一个数据库中,在文件系统,或直接在内存中。
|
|
xypmdxx
|
2.0/chapter15/#23 |
2009-12-17 21:44:57
|
这些都是缓存类型,您不直接控制,但您可以向其中提供线索(通过HTTP标头)关于您网站的哪个部分应被缓存,以及如何。
|
|
agn0stic
|
2.0/chapter08/#374 |
2009-12-16 22:01:46
|
带星号的可变参数
|
|
agn0stic
|
2.0/chapter08/#375 |
2009-12-16 21:19:47
|
我们先展示这些例子,接着再进行解释
|
|
agn0stic
|
2.0/chapter08/#374 |
2009-12-16 21:18:51
|
带星号的变量参数
|
|