因为Django是动态网站,全部每次请求均会去数据进行相应的操做,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者Redis中,5分钟内再有人来访问时,则再也不去执行view中的操做,而是直接从内存或者Redis中以前缓存的内容拿到,并返回。python
1
2
3
4
5
|
from
app01
import
views
urlpatterns
=
[
url(r
'^admin/'
, admin.site.urls),
url(r
'^cache/$'
, views.cache),
]
|
1
2
3
4
|
import
time
def
cache(request):
current
= str(
time.time())
return
HttpResponse(current)
|
1
2
3
4
5
6
7
8
9
10
|
CACHES
=
{
'default'
: {
'BACKEND'
:
'django.core.cache.backends.filebased.FileBasedCache'
,
#文件方式
'LOCATION'
: os.path.join(BASE_DIR,
'cache'
),
'TIMEOUT'
:
600
,
'OPTIONS'
: {
'MAX_ENTRIES'
:
1000
}
}
}
|
1
2
3
4
5
6
|
from
django.views.decorators.cache
import
cache_page
@cache_page
(
60
*
15
)
#缓存15分钟
def
cache(request):
current
=
str
(time.time())
return
HttpResponse(current)
|
时间戳只刷新了一次就被缓存了起来,再刷新就不改变了,读取的是cache的字符串。同时,生成了2个静态缓存文件:redis
所生成的静态字符串,能够存放在文件,内存,数据库,或redis、memcache。
数据库
英文连接:https://docs.djangoproject.com/en/1.9/topics/cache/django
中文链接:http://djangobook.py3k.cn/2.0/chapter15/ 缓存