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)

相关推荐

  • 29是质数吗,总和等于29 答案是多少

    技术29是质数吗,总和等于29 答案是多少clear all;clc;
    k = 0;
    m = 0;
    A = zeros(1,30);
    for i = 1000 : 9999for j = 0 : 3k = k + mod

    生活 2021年10月27日
  • 如何利用Windows系统字体来创建恶意软件

    技术如何利用Windows系统字体来创建恶意软件这篇文章将为大家详细讲解有关如何利用Windows系统字体来创建恶意软件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。步骤在大多数情况下

    攻略 2021年11月18日
  • css如何设置单元格的高度宽度自适应

    技术css如何设置单元格的高度宽度自适应这篇文章给大家分享的是有关css如何设置单元格的高度宽度自适应的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 设置单元格的高

    攻略 2021年11月28日
  • 阳光型抑郁症,阳光抑郁症是什么

    技术阳光型抑郁症,阳光抑郁症是什么一阳光型抑郁症、什么是“阳光抑郁症”?“阳光抑郁症”就是把自己内心的郁闷、委屈、愤怒等真正的情绪都给隐藏起来,只向人展示自己比较阳光的一面,“表面上以笑脸迎人,症状有“幻想逃离现有环境”

    生活 2021年10月22日
  • MYSQL如何探索在非互联网企业中的读写分离架构

    技术MYSQL如何探索在非互联网企业中的读写分离架构MYSQL如何探索在非互联网企业中的读写分离架构,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所

    攻略 2021年10月25日
  • 如何使用mysqldump备份异机恢复数据库

    技术如何使用mysqldump备份异机恢复数据库这篇文章给大家分享的是有关如何使用mysqldump备份异机恢复数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。使用mysqldump备份异

    攻略 2021年11月2日