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

posted @ 2014-12-28 14:52  2BiTT  阅读(363)  评论(0编辑  收藏  举报