django post请求,django get请求
Django和其他web框架的Http处理过程大致相同。Web服务器软件或模块(wsgiref)将http发送的请求封装到请求对象中。Django首先通过中间件处理请求。然后通过默认的网址方式。我们可以在中间件中拦截所有的请求,并以我们自己的方式处理后直接返回响应。
加载配置
Django的配置都是在“Project/settings.py”中定义的,可以是Django的配置,也可以是自定义配置,可以通过django.conf.settings访问,非常方便。
启动
最核心的动作是由django . core . management.commands . run fcgi的命令启动的,它运行django.core.servers.fastcgi中的runfastcgi,runfastcgi使用flup的WSGIServer启动fastcgi。WSGIServer携带Django.core.handlers.wsgi的WSGIHandler类的实例,WSGIHandler处理来自Web服务器(如Apache、Nginx等)的请求。),这样才能真正进入django的世界。
处理 Request
当一个HTTP请求到来时,WSGIHandler开始工作。它继承自BaseHandler。WSGIHandler为每个请求创建一个WSGIRequest实例,WSGIRequest继承自http。接下来,我们开始创建响应。
创建Response
BaseHandler的get_Response方法是根据请求创建响应,生成响应的具体动作是执行urls.py中对应的view函数,这也是Django处理“友好URL”的关键步骤,每个这样的函数都必须返回一个Response实例。此时一般的做法是通过loader加载模板,生成页面内容,其中重要的是通过ORM技术从数据库中取出数据,渲染到模板中,从而生成具体的页面。
处理Response
Django将响应返回给flup,flup取出响应的内容返回给Web服务器,Web服务器再返回给浏览器。
总之,Django在fastcgi中主要做了两件事:处理请求和创建响应,它们对应的核心是URL分析、模板技术和ORM技术。
如图所示,首先将一个HttpRequest转换成一个HTTP请求对象,然后将该对象传递给请求中间件进行处理。如果中间件返回一个响应,它将被直接传递给响应中间件以完成处理。否则,请求中间件将访问URL配置来决定处理哪个视图。当确定要执行哪个视图,但该视图尚未执行时,系统会将请求传递给视图中间件处理器进行处理。如果中间件返回响应,则该响应被直接传递给响应中间件进行后续处理;否则,将处理确定的视图函数并返回响应;如果在这个过程中抛出异常,它将由异常中间件处理器处理。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。