Cache的使用
说明:对于访问量较大的网站,缓存数据就是为了保存那些需要很多计算资源的结果,从而减少不必要的资源消耗
Django中设置缓存方式:
默认缓存(内存) | 文件缓存 | 数据库缓存 | redis缓存 |
---|
添加配置
参数 | 说明 |
---|---|
BACKEND | 指定的引擎 |
LOCATION | 缓存文件存放位置 |
TIMEOUT | 缓存的默认过期时间;None——永久不过期,0——立即失效 |
在项目setting.py中添加如下:
- 保存在文件中如下:
CACHES={
'default':{
'BACKEND':'django.core.cache.backends.filebased.FileBasedCache',
'LOCATION':'c:/foo/bar',
'TIMEOUT':300,
}
}
- 保存在内存中如下:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'LOCATION': 'unique-snowflake',
'TIMEOUT':60,
}
}
- 保存在数据库中如下:
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
- 成功创建项目时已默认启动Session
Session常用方法:
名称 | 说明 |
---|---|
get() | 根据键获取会话的值 |
clear() | 清除所有会话 |
flush() | 删除当前会话数据,并删除会话的Cookie |
del request.session[‘uid’] | 删除会话 |
set_expiry() | 设置会话的超时时间 |
- 实现切换不同网页仍处于登录状态
在视图函数views.py中添加如下: