首页 > 其他分享 >django中的缓存机制

django中的缓存机制

时间:2022-10-28 20:16:10浏览次数:48  
标签:缓存 ctime get cache 视图 django 机制

前端混合开发缓存的使用

-缓存的位置,通过配置文件来操作(以文件为例)
    -缓存的粒度:
    	-全站缓存
        	中间件
            MIDDLEWARE = [
                'django.middleware.cache.UpdateCacheMiddleware', #这个中间件必须放在第一个,表示经过视图函数响应之后给前端,在缓存里发一份
                。。。。
                'django.middleware.cache.FetchFromCacheMiddleware', # 这个必须放在最后一个,是请求来的时候最后看缓存有没有,有就直接返回前端页面
            ]
            CACHE_MIDDLEWARE_SECONDS=10  # 全站缓存时间
        -单页面缓存
        	在视图函数上加装饰器
            from django.views.decorators.cache import cache_page
            @cache_page(5)  # 缓存5s钟
            def test_cache(request):
                import time
                ctime=time.time()
                return render(request,'index.html',context={'ctime':ctime})
        	
        -页面局部缓存
        	{% load cache %}
            {% cache 5 'name' %}  # 5表示5s钟,name是唯一key值
             {{ ctime }}
            {% endcache %}

前后端分离缓存的使用

如何使用:在视图函数中导入模块,然后正常调用cache的get和set方法就行,先调set把需要缓存的value缓存起来,在调get获取
        from django.core.cache import cache
        cache.set('key',value可以是任意数据类型)
        cache.get('key')
应用场景:
    	-第一次查询所有图书,你通过多表联查序列化之后的数据,直接缓存起来
        -后续,直接先去缓存查,如果有直接返回,没有,再去连表查,返回之前再缓存

标签:缓存,ctime,get,cache,视图,django,机制
From: https://www.cnblogs.com/suncolor/p/16836965.html

相关文章

  • Chrome 浏览器运行机制原理解析 All In One
    Chrome浏览器运行机制原理解析AllInOne性能优化Insidelookatmodernwebbrowser深入了解现代网络浏览器Blog-ChromeDevelopershttps://developer.chrome.......
  • freertos-内部机制:栈和寄存器变化
    首先为了不会绕晕,需要明确概念:寄存器是公用的,栈是私有的,因为寄存器轮着用所以才需要将寄存器值压入栈,当压入栈后,寄存器就可以进行值的更新。 创建任务创建任务本质......
  • 从新开始学JAVA - Hello World与Java运行机制
    代码publicclassHello{publicstaticvoidmain(String[]args){System.out.print("Hello,World!");}}注意类的名字大些分号Java是大小写......
  • Token需要缓存到Redis的原因
    1、实现单点登录假设:有设备AB、无单点登录限制的某APP、一个账号(用户)设备A在APP第1次登录用户,服务器会给该用户创建1个Token并返回到设备A,设备A会将该Token保存到本地......
  • 突然挂了!Redis缓存都在内存中,这下完了!
    我是Redis,一个叫Antirez的男人把我带到了这个世界上。“快醒醒!快醒醒!”,隐隐约约,我听到有人在叫我。慢慢睁开眼睛,原来旁边是MySQL大哥。“我怎么睡着了?”“嗨,你刚才......
  • Django ORM-QuerySet Part
    主题一:什么情况下会触发QuerySet计算查询集Queryset可以生成、过滤、切片、传递,这些行为都不会引起数据库的操作,除非执行以下操作对查询集进行计算。(1)迭代:Queryset是可以......
  • Windows下Django开机启动
    在项目manage.py文件的文件路径下,新建一个bat文件我的bat文件名是startmiaoyin.bat,该文件的文件内容为:@echooffpythonC:\Users\zhour\PycharmProjects\learn_today\ma......
  • 操作系统–前言05--存储器-缓存
    存储器分级策略不能用一块存储器来解决所有的需求,那就必须把需求分级。一种可行的方案,根据数据的使用频率使用不同的存储器:高频使用的数据,读写越快越好,因此用最贵的材料,放到......
  • Django 删除models 中的表
    在models中创建了表,但是又要大改,本想着直接在mysql中删除表后再次makemigrations但发现这样子操作后,进行objects.create操作,发现报错,部分字段不在表中, ......
  • Java - 类加载机制
    加载=>验证、准备、解析(链接)=>初始化类初始化时机1. 遇到new,getstatic,putstatic,invokestatic这四条字节码指令时,如果类没有进行过初始化,需要进行初始化......