Django缓存入门
学习如何使用Django的缓存框架来提升网站性能,包括配置、使用和常见策略。 · 难度:入门 · +15XP
Django缓存框架
缓存是减少数据库查询和提升页面响应速度的关键技术。Django提供了一个灵活的缓存框架,支持多种后端,如内存缓存、文件缓存、数据库缓存和Memcached。
配置缓存后端
在 settings.py 中使用 CACHES 字典配置。例如,使用本地内存缓存:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'LOCATION': 'unique-snowflake',
}
}缓存API
核心函数:cache.set(key, value, timeout) 和 cache.get(key)。timeout单位为秒,默认300秒。
from django.core.cache import cache
# 存储数据
cache.set('my_key', 'hello', 60)
# 获取数据
value = cache.get('my_key') # 返回 'hello' 或 None
缓存视图
使用装饰器 @cache_page 缓存整个视图输出。
from django.views.decorators.cache import cache_page
@cache_page(60 * 15) # 缓存15分钟
def my_view(request):
# ... 耗时操作
return render(request, 'template.html', context)
缓存粒度对比
| 粒度 | 方法 | 适用场景 |
|---|---|---|
| 全站 | 中间件 | 静态内容为主的网站 |
| 视图 | 装饰器 | 单个视图结果不变 |
| 片段 | 模板标签 | 部分动态内容 |
| 低级API | cache.set/get | 自定义数据缓存 |
练习提示
修改下方代码:在 current_time 视图中使用 cache_page 装饰器,缓存时间为60秒。观察每次刷新页面时时间是否变化。