24Django装饰器整体缓存的一种玩法

技术24Django装饰器整体缓存的一种玩法 24Django装饰器整体缓存的一种玩法一,Django设置缓存的三种类型:#将数据缓存到表里
CACHE={'default':{'BACKEND':'d

一种播放24Django装饰器整个缓存的方法

首先,Django设置了三种类型的缓存:

#将数据缓存到表中

CACHE={ 0

默认' :{

后端' : ' django . core . cache . backs . db . database cache ',#数据库缓存引擎

位置' :' my _ cache _ table ',#声明缓存存储在哪个表中!

超时' :300,#缓存存储时间单位秒,默认为300秒。

OPTIONS':{

MAX_ENTRIES':300,#缓存中数据的最大数量

CULL_FREQUENCY':2,#当缓存数量达到最大值时,删除1/2的缓存数据。

}

}

}

#数据缓存在内存中

CACHES={

默认' :{

后端' : ' django . core . cache . back ends . locmem . locmemcache ',

位置' :'/var/tmp/django _ cache ',#此时文件夹的路径。

位置' : '唯一-雪花'

}

}

#将缓存数据存储在本地文件中

CACHE={

默认' :{

后端' : ' django . core . cache . back ends . file based . filebasedcache '

}

}

二、整体缓存的两种方法:

方法1:

直接配置一个路由,然后抛出需要缓存的视图函数。场景示例:突然有人告诉你xxx视图慢,可以直接配置一个路由,然后把视图扔进去,任务就完成了,比较省心。

#整体缓存写入1:

来自django . views . decorators . cache import cache _ page

urlpatterns=[

路径(' foo/',cache_page(30)(my_view))

]

方法2:

在需要缓存的视图中使用装饰器,例如:

#整体缓存写入2:

来自django . views . decorators . cache import cache _ page

@cache_page(30) #单位秒

def my_view(请求):

.

三、如何避免程序查询数据速度慢的问题

答:在内存中放一个临时数据样本,避免使用复杂的sql语句进行查询。如果您可以在视图中使用大量缓存,数据处理成本将大大降低。

第四,缓存应用场景:

数据变化不太频繁的数据,如博客列表页面、电商产品页面等。

例5:

1创建一个项目并用pycharm打开它。

#找到dajngo-admin的位置:

C: \用户\ 66907 \ AppData \漫游\ Python \ Python310 \站点包\django\bin

#添加环境变量

计算机-属性-高级系统设置-环境变量-路径-编辑-新建-粘贴上面的网址

#创建项目

C: \用户\66907d:

D:\cd PycharmProjects

d : \ pycharmsproject sDjango-admin . py start project my site 7

2创建数据库:

d : \ PycharmProjectsmysql-uroot-p 123456

mysql创建数据库mysite7默认字符集utf8

3在设置中配置数据库。复制:

数据库={ 0

默认' : {

ENGINE ' : ' django . db . back ends . MySQL ',

名称' : '我网站7 ',

用户' : '根',

PASSWORD': '123456 ',

主机' : '127.0.0.1 ',

端口' : '3306 '

}

}

4在设置中的空白处配置数据库缓存:

#将数据缓存到表中

CACHES={

默认' :{

后端' : ' django . core . cache . backs . db . database cache ',#数据库缓存引擎

位置' :' my _ cache _ table ',#声明缓存存储在哪个表中!

超时' :300,#缓存存储时间单位秒,默认为300秒。

OPTIONS':{

MAX_ENTRIES':300,#缓存中数据的最大数量

CULL_FREQUENCY':2,#当缓存数量达到最大值时,删除1/2的缓存数据。

}

}

}

5手动创建缓存配置中定义的表my_cache_table:

d : \ pycharmPROJECts \ my site 7 python manage . py create cachetable

6将django自己的表初始化到数据库。

d : \ pycharmPROJECts \ my site 7 python manage . py迁移

7在mysite7目录中创建一个同名的views.py。

my site 7d : \ pycharmPROJECts \ my site 7

mysite7

__init__。巴拉圭

asgi.py

settings.py

urls.py

views.py

wsgi.py

管理. py

编写一个视图函数,并将时间戳输出到浏览器。如果用户来了又去了缓存,时间戳应该是一个旧值。如果用户不去缓存,用户应该得到一个新的值。我们可以通过观察这个变化来判断缓存是否有效!

来自django.http导入HttpResponse

来自姜戈。观点。装修工人。缓存导入缓存页面

导入时间

@cache_page(15)

def测试_缓存(请求):

t=time.time()

返回httpresponse(' t是%s'%(t))

9配置路由:

来自django.contrib导入管理

从django.urls导入路径

来自。导入视图

urlpatterns=[

路径(' admin/',admin。网站。网址),

路径(“test_cache”,views.test _ cache),

]

10浏览器访问测试:http://127 .0 .0 .1:8000/test _ cache

你可以不停的刷新浏览器,但是浏览器里的时间没有任何变化,直到15秒后才会变化,此时说明缓存生效了

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/135155.html

(0)

相关推荐

  • 应该如何选择虚拟主机

    技术应该如何选择虚拟主机这篇文章主要为大家展示了“应该如何选择虚拟主机”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“应该如何选择虚拟主机”这篇文章吧。虚拟主机是在网络服务器上

    攻略 2021年11月1日
  • 门里一个吕念什么,门里一个外字 怎么打出来

    技术门里一个吕念什么,门里一个外字 怎么打出来把那个字造出来链接上就可以 造字程序详解
    在文字录入工作中,我们经常会碰到有些方言、土语、人名、地名等生僻字或符号无法录入的问题,给工作带来了很多不便,不过没关系,Wi

    生活 2021年10月22日
  • mysql中event怎么用

    技术mysql中event怎么用这篇文章主要为大家展示了“mysql中event怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“mysql中event怎么用”这篇文章吧。

    攻略 2021年11月2日
  • 南瓜发糕的做法松软又好吃,怎么蒸发糕好吃,又发又软呢

    技术南瓜发糕的做法松软又好吃,怎么蒸发糕好吃,又发又软呢我是吃货小筑,一枚专注于烘焙的美食博主,这是我在悟空问答的第573个原创回答,愿与大家一起用心探讨美食和烘焙南瓜发糕的做法松软又好吃!发糕要口感好,又发又软是有技巧

    生活 2021年10月29日
  • mybatis的sql语句如何防止注入(mybatis的sql语句如何预防注入)

    技术mybatis使用${}时sql注入的问题怎么解决这篇文章给大家介绍mybatis使用${}时sql注入的问题怎么解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。mybatis使用${}时sq

    攻略 2021年12月16日
  • 早餐的重要性,每天吃早餐对健康有什么意义

    技术早餐的重要性,每天吃早餐对健康有什么意义谢邀请早餐的重要性!吃早餐对人的健康是非常重要的。早餐不仅要吃,而且还要吃的好,吃的有营养。人经过晚饭后十几个小时的能量消耗,所剩的热能几乎没有了,若早饭不能及时补充,会直接影

    生活 2021年10月22日