zoukankan      html  css  js  c++  java
  • django:一个RESTfull的接口从wsgi到函数的历程

     1、wsgi将web server参数python化,封装为request对象传递给apllication命名的func对象并接受其传出的response参数,这个application在wsgi.py里:

     

    2、加载django的配置,LOGGING,INSTALL_APP等,并调用每个app下的AppConfig里的ready函数完成初始化:

    调用ready函数:

    3、初始化WSGIHandler,加载中间件,返回一个WSGIHandler对象给wsgi,入参是environ和start_response:

     

         

    4、返回后,配置加载完成,uwsgi认为django已经准备好接收请求了,开始启动worker接收消息了。

    5、当收到消息,uwsgi调用WSGIHandler,先解析environ,获取webserver带给我们的信息:

    6、准备获取response,先将请求逐个用中间件进行处理:

    7、获取urlconf,并解析request里的参数,然后从url里匹配对应的url:

    8、获取对应的view对象,这里这个对象是restframework实现的,并传入参数:

    9、那我们获取到的view对象是怎么来的呢?我们每个url后都会跟一个***.as_view(),这个as_view返回一个view的回调函数,允许接受request, *args, **kwargs:

    10、django拿到这个view并传入参数,view会调用dispatch依靠request.method将消息分发给我们定义的view的GET,PUT,POST等等方法:

    11、修改start_response并返回response给wsgi:

  • 相关阅读:
    Java中的匿名对象、内部类、包、代码块
    Java中的final和static关键字
    Java中的this与super关键字
    Java中的构造方法
    Java中的多态
    Vue+Element中Table懒加载,新增、删除操作后手动更新
    JQ取消hover事件
    github.com访问慢解决
    vue cli3 子目录问题
    右键事件 contextmenu
  • 原文地址:https://www.cnblogs.com/small-office/p/9443206.html
Copyright © 2011-2022 走看看