标签:contex ica bsp 用户名 cat 图文 framework messages person
settings.py文件的配置
# 缓存相关配置 CACHES = { ‘default‘: { ‘BACKEND‘: ‘django.core.cache.backends.filebased.FileBasedCache‘, # 指定缓存使用的引擎 ‘LOCATION‘: ‘D:\django_cache‘, # 指定缓存的路径 ‘TIMEOUT‘: 300, # 缓存超时时间(默认为300秒,None表示永不过期) ‘OPTIONS‘: { ‘MAX_ENTRIES‘: 300, # 最大缓存记录的数量(默认300) ‘CULL_FREQUENCY‘: 3, # 缓存到达最大个数之后,剔除缓存个数的比例,即:1/CULL_FREQUENCY(默认3) } } }
MIDDLEWARE = [
‘django.middleware.cache.UpdateCacheMiddleware‘, # 第一 位置必须放这里
‘django.middleware.security.SecurityMiddleware‘,
‘django.contrib.sessions.middleware.SessionMiddleware‘,
‘django.middleware.common.CommonMiddleware‘,
‘django.middleware.csrf.CsrfViewMiddleware‘,
‘django.contrib.auth.middleware.AuthenticationMiddleware‘,
‘django.contrib.messages.middleware.MessageMiddleware‘,
‘django.middleware.clickjacking.XFrameOptionsMiddleware‘,
‘django.middleware.cache.FetchFromCacheMiddleware‘, # 最后 位置必须放这里
]
第一个位置和最后一个位置是必须放正确的,不然会报错,中间是本来的中间件
在视图文件views.py文件中进行 缓存相关书写
# 单页面缓存 from django.views.decorators.cache import cache_page class Person: #自己书写这个类,后面都可以实例化,进行数据的存储和调用 def __init__(self, name, age): self.name = name self.age = age from django.core.cache import cache # @cache_page(5) # 这里是缓存5秒 def test1_cache(request): p = Person(‘egon‘, 18) # 实例化 cache.set(‘name‘, p) # 缓存的存储 import time ctime = time.time() # 给页面缓存一个时间而已 print(‘xxxxx‘) # 测试用的 不要也行 return render(request, ‘index.html‘, context={‘ctime‘: ctime}) # render三板斧的格式语句, 给index这个页面,返回 ctime这个变量:ctime def test2_cache(request): p = cache.get(‘name‘)# 获取缓存中的数据 print(p.name) # 可以在后台打印出来,后续若是想想用,可以直接调用的 import time ctime = time.time() return render(request, ‘index.html‘, context={‘ctime‘: ctime}) # render三板斧的格式语句, 给index这个页面,返回 ctime这个变量:ctime
配置完视图后 加路由
from app_jwt import views from django.urls import path, re_path from rest_framework_jwt.views import obtain_jwt_token urlpatterns = [ # 缓存 path(‘test1/‘,views.test1_cache), path(‘test2/‘,views.test2_cache), ]
测试 test1进行存储 ,test2进行获取
后台就能看到获取的缓存数据,也就是实例化的用户名
# 前后端分离缓存的使用 - 如何使用 from django.core.cache import cache cache.set(‘key‘,value可以是任意数据类型) cache.get(‘key‘) -应用场景: -第一次查询所有图书,你通过多表联查序列化之后的数据,直接缓存起来 -后续,直接先去缓存查,如果有直接返回,没有,再去连表查,返回之前再缓存
标签:contex ica bsp 用户名 cat 图文 framework messages person
原文地址:https://www.cnblogs.com/xiao-zang/p/13308330.html