rest_framework框架下的Django声明和生命周期

rest_framework框架下的Django声明和生命周期

Django声明周期(request)

  • 客户端发起请求
  • 请求经过wsgi
    • wsgi: 是一个协议----web服务网关接口,即在web服务器和web应用之间做一个协议规范。这个协议不属于Django,Django只是运用wsgi生成socket。
    • wsgiref: 实现wsgi协议的一个模块,模块的本质是一个socket服务端。(性能太低,实际部署不会用到)
    • uwsgi:实现wsgi协议的一个模块,模块本质是一个socket服务端。(实际部署的时候用到)
    • werzeug: 实现wsgi协议的一个模块,模块本质是一个socket服务端。(Flask框架)
    • tornado: 实现wsgi协议的一个模块,模块本质是一个socket服务端。(Tornado框架没有用wsgi,socket完全是自己写的,这个也是tornado框架和另外两个框架之间的区别)
  • 中间件
  • url路由分配
  • 找到处理请求的视图函数
  • 视图函数与模型层进行交互,取出数据,视图层调用模版层,将数据渲染返回给客户端。

    Django生命周期(rest_framework框架下)

  • 客户端发起请求
  • 请求经过wsgi
  • url路由分配
  • 分配路由后调用as_view()方法,执行内置view函数
  • 内置的view函数调用调度方法dispath()
  • dispatch()对请求进行封装处理
  • 认证处理
  • 权限处理
  • 限流处理
  • dispatch()反射执行对应的方法,返回数据给服务端。

中间件&装饰器

  • 中间件:适用于对请求进行批量的操作
    • 场景:
      • 基于角色的权限控制
      • 用户认证
      • csrf(原理: )
      • session
      • 做类似于黑名单的功能
      • 日志记录(记录所有的请求)
  • 装饰器:对某个请求做操作
上一篇:[原创]-CMD命令设置IP地址


下一篇:BZOJ.3990.[SDOI2015]排序(DFS)