缓存和状态管理

Cache的使用

说明:对于访问量较大的网站,缓存数据就是为了保存那些需要很多计算资源的结果,从而减少不必要的资源消耗

Django中设置缓存方式:

默认缓存(内存) 文件缓存 数据库缓存 redis缓存

添加配置

参数 说明
BACKEND 指定的引擎
LOCATION 缓存文件存放位置
TIMEOUT 缓存的默认过期时间;None——永久不过期,0——立即失效

在项目setting.py中添加如下:

  1. 保存在文件中如下:
CACHES={
    
    
    'default':{
    
    
        'BACKEND':'django.core.cache.backends.filebased.FileBasedCache',
        'LOCATION':'c:/foo/bar',
        'TIMEOUT':300,
    }
}
  1. 保存在内存中如下:
CACHES = {
    
    
    'default': {
    
    
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
        'LOCATION': 'unique-snowflake',
        'TIMEOUT':60,
    }
}
  1. 保存在数据库中如下:
CACHES = {
    
    
    'default': {
    
    
        'BACKEND': 'django.core.cache.backends.db.DatabaseCase',
        'LOCATION': 'my_cache_table',
    }
}

修改视图

在视图views.py中添加如下:

from django.http import HttpResponse
from django.core.cache import cache
def index(request):
    path = request.path
    cache.set("path", path)
    print(cache.get('path'))
    return HttpResponse("ok") 

配置路由

在路由urls.py中添加如下:

from django.contrib import admin
from django.urls import path
from user.views import index
urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', index),
]

登录验证

在web中输入http://127.0.0.1:8000/index即可
在这里插入图片描述

Session的使用

说明:Http协议是无状态的,每次请求都是一次新的请求,不会记得之前通信的状态,客户端与服务器端的一次通信就是一次会话。状态保持的目的是在一段时间内跟踪请求者的状态,可以实现跨页面访问当前请求者的数据

实现状态保持的方式:在客户端或服务器端存储与会话有关的数据
存储方式:Cookie、Session

  1. 成功创建项目时已默认启动Session

Session常用方法:

名称 说明
get() 根据键获取会话的值
clear() 清除所有会话
flush() 删除当前会话数据,并删除会话的Cookie
del request.session[‘uid’] 删除会话
set_expiry() 设置会话的超时时间
  1. 实现切换不同网页仍处于登录状态
    在视图函数views.py中添加如下:

在这里插入图片描述

Guess you like

Origin blog.csdn.net/weixin_46329906/article/details/116638032