django新手村11-----缓存

缓存对於服务器的好处,在於使用者会将数据加载到内存,减少了对资料库的访问

终端输入

python manage.py createcachetable my_cache_table

在setting.py中添加caches

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION': 'my_cache_table',
    }
}

两种写法

手动写快取,一开始先判断有没有这个快取名称('index'),有就使用快取资料,没有就去加载资料,这边使用time.sleep(5)来假装资料要存取很久的时间,cache.set里面的timeout表示它会记得快取30秒

def index(request):

    if cache.get('index'):
        return HttpResponse(cache.get('index'))

    time.sleep(5)
    response = render(request, 'index.html')

    cache.set('index', response, timeout=30)

    return response

另一种简单的多,就加个@cache_page()

from django.views.decorators.cache import cache_page

@cache_page(30)
def index(request):
    time.sleep(5)
    return render(request, 'index.html')

还有很多快取的方法,快取可以同时用不同种的,如果想更深入研究的,redis可以看看


<<:  Java学习之路08---方法

>>:  D20. 学习基础C、C++语言

铁人赛 Day4 -- 一定要知道的 CSS (一)

前言 昨天有谈到 Div 区块 是怎麽写出来的之後,今天就要来谈谈 CSS 什麽是 CSS ? 简单...

[区块链&DAPP介绍 Day11] Solidity 教学 - units and globally available variables-2

今日来延续昨日没有写完的全域变数。 Error Handlin //里面可以做一些条件判断,如果为f...

【从零开始的Swift开发心路历程-Day1】工欲善其事,必先利其器

如果你想成为一名Swift开发人员,光是只有一台MacBook是不够的~还必须要有一个好的开发环境,...

除了刷题之外的事 - Software Engineering

除了刷题之外的事 「程序设计」的练习是一种从「写得出」程序到「写得好」持续迭代的优化过程,在 Le...

那些被忽略但很好用的 Web API / BroadcastChannel

里长办公室广播:张君雅小妹妹,恁兜欸泡面已经煮好了! 前两天已经认识了 PostMessage 和...