Python全系列 教程
3567个小节阅读:5929.5k
目录
鸿蒙应用开发
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
官网:https://docs.djangoproject.com/zh-hans/4.1/topics/cache/#the-low-level-cache-api
有时,缓存整个渲染页面并不会带来太多好处,事实上,这样会很不方便
你的站点包含了一个视图,它的结果依赖于许多费时的查询,而且结果会随着时间变化而改变。在这个情况下,使用站点或视图缓存策略提供的全页面缓存并不理想,因为不能缓存所有结果(一些数据经常变动),不过你仍然可以缓存几乎没有变化的结果
像这样的情况,Django 公开了一个底层的缓存 API 。你可以使用这个 API 以任意级别粒度在缓存中存储对象。你可以缓存任何可以安全的 pickle 的 Python 对象:模型对象的字符串、字典、列表,或者其他。(大部分通用的 Python 对象都可以被 pickle;可以参考 Python 文档关于 pickling 的信息)
django.core.cache.caches
xxxxxxxxxx
from django.core.cache import caches
cache1 = caches['myalias']
cache2 = caches['myalias']
# 判断为True
if cache1 is cache2:
...
说明:
作为快捷方式, 默认缓存(default)可以使用 django.core.cache.cache
xxxxxxxxxx
from django.core.cache import cache
cache
## 等于
from django.core.cache import caches
caches['default']
xxxxxxxxxx
# 使用 redis 的一般用法
cache.set('uname', 'ok')
manul_set = cache.get('uname')
# 可以手动设置 timeout
cache.set("key", "value", timeout=None)
# ttl: 任何有超时设置的 key 的超时值
cache.set("foo", "value", timeout=25)
# 指定一个新的过期时间
cache.set("foo", "bar", timeout=22)
cache.touch("foo", 5)
实时效果反馈
1. 关于Django底层缓存使用,说法错误的是?
A 底层缓存可以缓存任何可以安全的 pickle 的 Python 对象
B django.core.cache.caches用于选择配置CACHES的缓存
C django.core.cache.caches等于同于django.core.cache.cache
D django.core.cache.cache是直接操作redis的数据
答案
1=>C