django从请求到响应的过程详细

2021-04-22  本文已影响0人  Joncc
image.png

大致几个步骤:

  1. 用户通过浏览器请求一个页面
  2. 请求到达Request Middlewaresprocess_request,中间件对request做一些预处理或者直接response请求
  3. URLConf通过urls.py文件和请求的URL找到相应的View
  4. View Middlewaresprocess_view被访问,它同样可以对request做一些处理或者直接返回response
  5. 调用View中的函数
  6. View中的方法可以选择性的通过Models访问底层的数据
  7. 所有的Model-to-DB的交互都是通过manager完成的
  8. 如果需要,Views可以使用一个特殊的Context
  9. Context被传给Template用来生成页面
    a.Template使用Filters和Tags去渲染输出
    b.输出被返回到View
    c.HTTPResponse被发送到Response Middlewares
    d.任何Response Middlewares都可以丰富response或者返回一个完全不同的response
    e.Response返回到浏览器,呈现给用户
    中间类中的顺序与方法
    django 的中间件类至少含有以下四个方法中的一个:
    process_request、 process_view、process_exception、process_response
    WSGIHandler通过load_middleware将这个些方法分别添加到_request_middleware、_view_middleware、_response_middleware 和 _exception_middleware四个列表中。
    并不是每个中间件都有这4个方法,如果不存在某个方法,那么在加载的过程中,这个类就被跳过。
上一篇下一篇

猜你喜欢

热点阅读