Django--缓存

因为Django是动态网站,全部每次请求均会去数据进行相应的操做,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者Redis中,5分钟内再有人来访问时,则再也不去执行view中的操做,而是直接从内存或者Redis中以前缓存的内容拿到,并返回。python

一、准备一个动态网站

urls.py
1
2
3
4
5
from app01 import views
urlpatterns = [
     url(r '^admin/' , admin.site.urls),
     url(r '^cache/$' , views.cache),
]
app01/views.py
1
2
3
4
import time
def cache(request):
     current = str( time.time())
     return HttpResponse(current)


二、建立缓存目录


三、配置文件

settings.py
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/ 缓存













相关文章
相关标签/搜索