⚡ 编程实验室🏗️ HTML🎨 CSS⚡ JavaScript🐍 Python🗄️ SQL☕ Java⚛️ React💚 Vue🟢 Node.js⚙️ C语言🐘 PHP🐹 Go🔷 TypeScript🐬 MySQL🔧 C++🎯 C#🦀 Rust🅱️ Bootstrap💡 jQuery🎸 Django🍃 MongoDB👗 Sass🎪 Kotlin📊 R语言📋 XML📊 Excel🐘 PostgreSQL🐳 Docker🅰️ Angular🎮 游戏🏠 网站首页

Django缓存实战

学习在Django中配置和使用缓存系统,提升网站响应速度。 · 难度:入门 · +15XP

缓存概述

缓存是一种将耗时计算结果或频繁访问的数据存储在快速介质中的技术,从而避免重复计算或数据库查询。Django内置了强大的缓存框架,支持多种后端:内存缓存(如Memcached、Redis)、文件缓存、数据库缓存等。

缓存设置

在settings.py中配置CACHES字典。以下示例使用本地内存缓存(适合开发环境):

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
        'LOCATION': 'unique-snowflake',
    }
}

生产环境推荐使用Redis:

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.redis.RedisCache',
        'LOCATION': 'redis://127.0.0.1:6379/1',
    }
}

缓存粒度

粒度方法适用场景
全站缓存中间件静态网站或几乎不变的内容
视图缓存@cache_page装饰器单个视图结果
模板片段缓存{% cache %}标签模板中部分内容
低级别缓存cache.set/get任意数据

示例:视图缓存

from django.views.decorators.cache import cache_page

@cache_page(60 * 15)  # 缓存15分钟
def my_view(request):
    # 耗时操作
    return render(request, 'template.html')

低级别缓存操作

from django.core.cache import cache

# 设置缓存,过期时间300秒
cache.set('my_key', 'my_value', 300)

# 获取缓存
value = cache.get('my_key')

# 删除缓存
cache.delete('my_key')

练习提示: 修改starter_code中的视图,添加@cache_page装饰器,并设置缓存时间为60秒。刷新页面两次,观察第二次响应速度是否提高。

Ctrl+Enter
🚀 升级VIP
解锁全部课程+AI助手

🏆 学习排行

加载中...

📊 统计

📖 189 篇
0 完成
🔥 0