7:django 中间件
中间件
中间件是一个连接django请求/相应处理的框架,是一个轻量级的低层次的全局影响django输入输出的系统插件。
每一个中间件组件负责一些特定的功能,这里我们我们只看一下如何激活使用系统自带的中间件,至于如何写自己的中间件,目前自己的水平还没到,主要觉得还用不着,等用着的时候在写吧
激活中间件
在django中激活中间件很简单,只需要在django的配置文件中把自己想使用的中间件的名字加入到 MIDDLEWARE_CLASSES这个列表里面就ok了
MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', )
值得注意的是,django在处理请求的时候,是顺序检索中间件列表的;django在处理相应的时候,是逆序检索中间件列表的;可以按照下图来理解
每一个请求响应都是从左到右的,所以是现顺序再逆序的
内建的中间件(django自带的中间件)
-
Cache middleware,正如其名,关于缓存的中间件
- class UpdateCacheMiddleware
- class FetchFromCacheMiddleware
-
“Common” middleware,通用中间件,主要是增加了一些便利的功能,比如有关user_agent(检查agent),append_slash(添加后斜线),prepend_www(甜加www前缀),send_broken_link_emails(死链报告)以及Use_etags之类的功能
- class CommonMiddleware
-
View metadata middleware 查看元数据中间件,
- class XViewMiddleware
-
GZip middleware gzip压缩中间件,为那些接受gzip压缩协议的浏览器压缩网页内容
- class GZipMiddleware
-
Conditional GET middleware 有条件的get中间件,处理一些有特殊要求的get请求
- class ConditionalGetMiddleware
-
Reverse proxy middleware 反向代理中间件
- class SetRemoteAddrFromForwardedFor
-
Locale middleware 语言环境中间件
- class LocaleMiddleware
-
Message middleware 消息中间件
- class MessageMiddleware
-
Session middleware 会话中间件
- class SessionMiddleware
-
Authentication middleware 认证中间件
- class AuthenticationMiddleware
-
CSRF protection middleware csrf保护中间件
- class CsrfViewMiddleware
-
Transaction middleware 交易中间件
- class TransactionMiddleware
-
X-Frame-Options middleware
- class XFrameOptionsMiddleware
p