django框架进阶-使用缓存-长期维护
2023-09-14 08:59:04 时间
############### django-缓存页面 ###############
###########################################
# 全站缓存,
# 整个网站的所有的页面都做缓存
# 要有一个中间件,
# 在中间件里面做缓存,
# 使用中间件,经过一系列的认证等操作,如果内容在缓存中存在,则使用FetchFromCacheMiddleware获取内容并返回给用户,
# 当返回给用户之前,判断缓存中是否已经存在,如果不存在则UpdateCacheMiddleware会将缓存保存至缓存,从而实现全站缓存
MIDDLEWARE = [
'django.middleware.cache.UpdateCacheMiddleware', # 开头加
# 其他中间件...
'django.middleware.cache.FetchFromCacheMiddleware', # 结束加
]
CACHE_MIDDLEWARE_ALIAS = ""
CACHE_MIDDLEWARE_SECONDS = "" # 设置缓存时间,单位秒
CACHE_MIDDLEWARE_KEY_PREFIX = ""
# 这样第一次访问了页面之后,就会被缓存起来,然后再次访问页面就从缓存取了,
##################################
# 单视图缓存
# 因为全站缓存太大了,可以对某一个视图进行缓存,
# 加装饰器,
# 方式一:
from django.views.decorators.cache import cache_page
@cache_page(60 * 15) # 括号里面是秒,这个比全局的高,
def my_view(request):
...
# 方式二:
from django.views.decorators.cache import cache_page
urlpatterns = [
url(r'^foo/([0-9]{1,2})/$', cache_page(60 * 15)(my_view)),
]
# 单视图缓存这个用处不大,因为一个页面是有动态数据的,有固定的数据,是不能一概而论的,
# 所以可以对一个页面的某一个部分做缓存,
#######################################
# 局部缓存,
# a. 引入TemplateTag
# {% load cache %}
# b. 使用缓存
# {% cache 5000 缓存key %} # 5000是指的5000秒之后消失,key是自己写的
# 缓存内容
# {% endcache %}
# 一共是三个级别,
############### 结束线 ################
相关文章
- Django组件:django-simple-captcha 使用
- Django分页(二)
- Django之setting文件
- Django缓存问题
- Django AttributeError: 'OrderedDict' object has no attribute 'register'
- Django快速开发之投票系统
- Apache+Django性能优化之mod_wsgi篇
- 第三百八十三节,Django+Xadmin打造上线标准的在线教育平台—第三方模块django-simple-captcha验证码
- 第三百一十七节,Django框架,缓存
- Django中如何使用django-celery完成异步任务2(转)
- django迁移:全局、局部
- Django管理工具django-admin.py创建项目
- django框架进阶-admin-长期维护
- django框架基础-ORM跨表操作-长期维护
- Django管理工具django-admin.py创建项目
- Django 3.2.5博客开发教程:用Admin管理后台管理数据
- Python Django 数据缓存存储位置类
- Django中载入js和css文件
- Django 之 权限系统(组件)
- django gunicorn 各worker class简单性能测试
- Django缓存系统选择之Memcached与Redis的区别与性能对比
- Django 缓存 使用 Redis Memcached 为网站提速
- Django(18)-ORM常用的查询函数详解及实例演示
- django.db.utils.DataError: (1406, “Data too long for column ‘name‘ at row 1“)