中间件(Middleware)

2019-03-01  本文已影响0人  13147abc

中间件

问题1:中间件的背后的设计理念是什么?(分离横切关注功能/拦截过滤器模式)
问题2:中间件有哪些不同的实现方式(参考下面代码)
问题3:描述Django内置的中间件及其执行顺序。(推荐阅读:Django官方文档 - 中间件 - 中间件顺序

激活中间件
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
    'common.middlewares.block_sms_middleware',
]
自定义中间件
def simple_middleware(get_response):
  def middleware(response, *args, **kwargs)
    response = get_response(resquest, *args, **kwargs)
    return response
  return middleware
class MyMiddleware(object):
  def __init__(self, get_response):
    self.get_response = get_response
  def __call_(self, request):
    response = self.get_response(request)
    return response
class MyMiddleware(object):
  def __init__(self):
    pass
  def process_request(request):
    pass
  def process_view(request, view_func, view_args, view_kwargs):
    pass
  def process_template_response(request, response):
    pass
  def process_response(request, response):
    pass
  def process_exception(request, exception):
    pass
内置中间件

1.CommonMiddleware - 基础设置中间件

2.SecurityMiddleware - 安全相关中间件

3.SessionMiddleware - 会话中间件
4.CsrfViewMiddleware - 防范跨站身份伪造中间件

5.XFrameOptionsMiddleware - 防范点击劫持攻击中间件 F0RIU@M52SIA4_Z}@TV3XIB.png
上一篇 下一篇

猜你喜欢

热点阅读