django框架进阶-使用缓存-长期维护
############### 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框架进阶-ModelForm组件-长期维护
############################################################ """ 通常在Django项目中,我们编写的大部 ...
- django框架进阶-form组件-长期维护
################## form组件做了什么事情? ####################### 之前web开发的模式,以注册为例 1,要有一个注册页面,然后有一个f ...
- django框架基础-ORM基础-长期维护
############### ORM介绍 ################ """ ORM简介: ORM 全拼Object-Relation Mapping. ...
- django框架基础-视图系统-长期维护
################## 什么是视图? ####################### 视图: 1,一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受W ...
- django框架基础-路由系统-长期维护
################## 路由系统介绍 ####################### 路由系统就是路径和函数的对应关系, 路由系统可以看成支撑你这个网站的目录,就像是一本书一样 ...
- django框架进阶-中间件-长期维护
################## 为什么使用中间件? ####################### 先说几个需求, 1,url的白名单,url=[ "XX"] ...
- django框架进阶-分页-长期维护
################## 分页 ####################### 分页, django有自己内置的分页,但是功能不是很强大,所以自己写一个分页, web页面数据非常 ...
- django框架进阶-auth认证系统-长期维护
################## django的认证系统 ####################### 我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统.此时我们需要 ...
- django框架进阶-AJAX-长期维护
################## 预备知识---json ####################### 预备知识,json 什么是json?这是一种数据格式,和语言没有关系, 为什么 ...
随机推荐
- NetWork--HTTPS 原理解析<转>
转载链接:https://www.cnblogs.com/zery/p/5164795.html HTTPS 原理解析 一 前言 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网 ...
- Linxu--导出oracle数据
配置导出的表:(configure.sh) #!/bin/bash function get_config() { tables=( BLOG WF_PROCESS WF_TASK WF_TASK_A ...
- 明明办理的是100M光纤,为何经过路由器输出只有20M?
就在今年7月26日,宽带发展联盟发布了第20期<中国宽带速率状况报告>(2018年第二季度).报告显示,2018年第二季度我国固定宽带网络平均下载速率达到21.31Mbps,比去年第二季度 ...
- socket实践编程1
1.服务器端程序编写 (1).socket (2).bind (3).listen (4).accept,返回值是一个fd,accept正确返回就表示我们已经和前来连接我的客户端之间建立了一个TCP连 ...
- Linux-socket编程接口介绍
1.建立连接 (1).socket.socket函数类似于open,用来打开一个网络连接,如果打开成功则返回一个网络文件描述符(int类型),之后我们操作这个网络连接都可以通过这个网络文件描述符. ( ...
- mysql的show status和show global status区别在哪
show status 本次会话的参数状态show global status 本次MYSQL服务开启(或重置)到现在总请求数
- 思考题:clock类编写
题目 为便于后文理解,这里先补上这份代码前文开的库以及宏定义: #include<cstdio> #include<iostream> #include<string&g ...
- 【MySQL参数】-innodb_additional_mem_pool_size
原博客:https://yq.aliyun.com/articles/32384
- day63-html-列表,表格,标签的嵌套规则
1.列表 1.无序列表 <ul type="disc"> <li>a</li> <li>b</li> </ul&g ...
- android新闻项目、饮食助手、下拉刷新、自定义View进度条、ReactNative阅读器等源码
Android精选源码 Android仿照36Kr官方新闻项目课程源码 一个优雅美观的下拉刷新布局,众多样式可选 安卓版本的VegaScroll滚动布局 android物流详情的弹框 健身饮食记录助手 ...