Django--缓存
由于Django是动态网站,所有每次请求均会去数据进行相应的操作,当程序访问量大时,耗时必然会更加明显,最简单解决方式是使用:缓存,缓存将一个某个views的返回值保存至内存或者Redis中,5分钟内再有人来访问时,则不再去执行view中的操作,而是直接从内存或者Redis中之前缓存的内容拿到,并返回。
1、准备一个动态网站
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) |
2、创建缓存目录
3、配置文件
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 } } } |
4、应用
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) |
5、验证
时间戳只刷新了一次就被缓存了起来,再刷新就不改变了,读取的是cache的字符串。同时,生成了2个静态缓存文件:
6、缓存介质
所生成的静态字符串,可以存放在文件,内存,数据库,或redis、memcache。
英文链接:https://docs.djangoproject.com/en/1.9/topics/cache/
中文连接:http://djangobook.py3k.cn/2.0/chapter15/