Django开发_15_缓存

发布时间:2024年01月22日

使用缓存可以大大提高程序的响应速度,增强用户体验。

缓存的方式有4种:数据库缓存,Redis缓存,Memcacheed缓存,程序级缓存

主要以数据库缓存和程序级缓存进行讲解

一、数据库缓存

(一)创建缓存表

终端输入命令,创建cache_table缓存表

python manage.py createcachetable cache_table

(二)添加缓存配置

settings.py:

CACHES = {
    # 数据库缓存
    'default': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION': 'cache_table'  # 命令行:python manage.py createcachetable cache_table
    },}

(三)编写视图函数

views.py:

from django.core.cache import caches
from django.http import HttpResponse
from django.shortcuts import render
from django.views.decorators.cache import cache_page


def db_show(request):
    # 实例化缓存对象
    db_cache = caches["default"]
    # 判断缓存是否存在
    cache_data = db_cache.get("data_cache")  # 缓存的数据
    if cache_data:
        print("命中缓存")
        return HttpResponse(cache_data)
    print("没有命中,开始查找数据...")
    time.sleep(10)
    data = ["apple", "banana", "orange", "watermelon"]
    response = render(request, "fruits.html", {"data": data})
    # 设置缓存
    db_cache.set("data_cache", response.content, timeout=30)
    return response

配合urls.py,html文件展示

二、程序级缓存

(一)在视图函数中使用

views.py:

@cache_page(过期时间)

@cache_page(30)  # 装饰器(缓存过期时间)
def show(request):
    print("调用视图函数")
    data = ["apple", "banana", "orange", "watermelon"]
    return render(request, "fruits.html", {"data": data})

(二)在路由中使用

urls.py:

cache_page(过期时间)(视图函数)

path("pro_url/", cache_page(30)(url_show))

文章来源:https://blog.csdn.net/weixin_47316777/article/details/135681803
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。