django 的请求处理部分----WSGIHandler 源码分析 django1.5.5

从这里拉开django框架的帷幕。。撕开,哈哈

主要涉及的类:django.core.handlers.base.BaseHandler,django.core.handlers.wsgi.WSGIHandler,前者为后者的父类。

django.http.request.HttpRequest

后者的实例实现了WSGI请求的处理,因为WSGIHandler 实现了__call__方法,所以实例成为了可调用对象。

 流程:接收到一个wsgi请求--》生成一个WSGIHandler实例,传入参数environ,start_response.--》建立request对象(environ作为参数)--》调用base.BaseHandler的get_response方法(使用这个request作为参数)

这个get_response的主要作用就是各种middleware的调用,其次就是解析url到view,依据url.py中的patterns。

urlresolve是什么呢,就是从urlconf中找出第一个匹配到的view。

然后就开始middleware和view的调用了。

get_response首先将request用_requet_middleware处理一遍。

如果request_middleware返回response了,就直接结束并返回response

request_middleware循环完了当然该view_middleware了。view_middleware在view还没有被执行的时候进行处理。参数是request,view,var参数keyword参数。

接着就该真正的执行这个view了,如果在views中出错了,就进行exceptiion_middleware处理。否则返回一个response。

如果view的返回值是一个Template,那么会导致template_response_middleware的调用。参数是request和response

最后被调用的是response_middleware,参数仍然是request,response,不过这个response是Response对象了。。

注意在上面任何一步返回一个response都会导致views中的response失效。

没什么难的,源代码很清晰。。

接下来分析一下这个过程中涉及到的urlresolve过程。

 

转载于:https://www.cnblogs.com/Yeah-come-on/p/3652528.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/493317.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测试归测试,自动驾驶向个人全面开放依然长路漫漫

来源:网易智能摘要在北京某地,乘客们正等待着乘坐百度“阿波罗”无人驾驶汽车。最近,百度与福特汽车启动了为期两年的L4级别自动驾驶联合测试项目,在特定的地理区域和特定天气条件下行驶无人驾驶汽车。自亨利福特的移动装配生产线…

利用opencv添加mask

第一种做法: import os import sys import random import math import numpy as np import skimage.io import matplotlib import matplotlib.pyplot as plt import cv2 import colorsys os.environ[CUDA_VISIBLE_DEVICES] 1 # Root directory of the project RO…

团队开发(一)

根据我们团队对题目的讨论,目标的设置,任务的认领,我在团队中的任务如下: 现阶段,能在周一前完成图片的移动。具体的目标设置如下: 周五: 9:00-9:35 将书上的代码敲到电脑上&#…

白宫计划2019年春季发布新版人工智能研究战略

来源:人工智能和大数据近日,据白宫科技政策办公室人工智能助理主任Lynne Parker表示,特朗普政府计划更新由奥巴马政府首次发布的人工智能研究与发展战略。2016年美国国家人工智能研究与发展战略计划概述了美国联邦研究资金的投入重点。2018年…

统计学基本知识四

代码可以参考之前的博客: https://blog.csdn.net/fanzonghao/article/details/85643653 https://blog.csdn.net/fanzonghao/article/details/81637669 声明:文中的图来自于可汗学院公开课,若有侵权,联系我删除。 线性回归&…

Openstack Havana的两个排错过程

问题一:Timeout wating on RPC response, topic:"network" 描述: 启动实例一直等待,然后变为error。查看日志,是 timeout waiting on rpc response, topic "network", method: "validate_networks"…

生活|全民AI时代:干洗店老板、高中生齐上阵

来源:大数据文摘 1975年冬天,旧金山半岛的广告牌上出现了一则有点“奇怪”的消息。“你是否在尝试自己做电脑开发呢?,如果是的话,参加我们的聚会!”这则通告来自当年的Homebrew计算机俱乐部。Homebrew是一…

python可迭代对象,迭代器,生成器

容器是一系列元素的集合,str、list、set、dict、file、sockets对象都可以看作是容器,容器都可以被迭代(用在for,while等语句中),因此他们被称为可迭代对象。 可迭代对象实现了__iter__方法,该方…

国内2大Git代码托管网站

可以说GitHub的出现完全颠覆了以往大家对代码托管网站的认识。GitHub不但是一个代码托管网站,更是一个程序员的SNS社区。GitHub真正迷人的是它的创新能力与Geek精神,这些都是无法模仿的。在GitHub出现后,国内也出现了大量的代码托管网站&…

软件“吞噬”世界后,我们正在进入“活产品”时代

来源:资本实验室摘要:2011年,网景公司创始人与风险投资家马克安德森提出了一个著名的观点:“软件正在吞噬世界”。虽然他的观点最初聚焦于新一波互联网平台公司的成长,但对物理产品的发展也同样适用,因为现…

python读取与写入json+csv变成coco的json文件+安装labelme

一.python读取与输出json 1.python字典和json互转这里用json.dumps,还原则用json.loads,dumps以后就变为字符串了 import json# info {name: Damin, address: 北京, salary:88888} info {"name": "Damin", "address": "北京…

基于原始套接字的嗅探器

嗅探器这个代码我去年的时候就已经写过了,这个学期并不是非常忙,顺手复习网络,就又尝试着写了一遍。 其实在写嗅探器的时候,最主要的还是要将网卡设置为混杂模式。在此基础之上,对抓到的数据包进行分析。 这个是我写出…

3D打印探讨:三个应用方向与四项风险

来源:学习时报摘要:3D打印技术已经诞生超过30年,今天已经被应用到众多领域。它在解决国际人道主义危机、提高医学水平、保护生态环境方面具有重要的应用价值,同时也在危机就业、新型犯罪与安全威胁等方面存在风险。3D打印技术从诞…

discuz x2.5用户注册后邮箱认证后无法收到邮件或者直接进垃圾箱

又是一个周末,jquery特效继续折腾我那discuz论坛,我开启了个邮箱验证,恶意注册的太恶心了,没有办法。 能稍微屏蔽点,但是问题来了,据亲们反应,无法收到验证邮件,或者有时间直接进入垃…

新能源汽车产业链:锂电设备站上风口

来源:乐晴智库精选摘要:政策宠儿,高额补贴下新能源汽车行业快速成长。全球新能源汽车在过去几年高速成长,从2011年到2017年,全球新能源汽车销量从5.1万辆增长到162.1万辆,期间的复合增速达到77.9%。中国对全…

CNN分类,ResNet V1 ,ResNet V2,ResNeXt,DenseNet

一.CNN分类 1.基于空间利用的CNN 2.基于深度的CNN 3.基于多路径的CNN 4.基于宽度的多连接 5.基于特征图的CNN 6.基于通道的CNN 7.基于注意力的CNN 二,ResNet V1 2015 ILSVRC 第一 论文指出归一化包括BN,权重初始化已经很大程度解决了梯度消失和爆炸的问题&…

最大流问题

http://course.cug.edu.cn/cugFirst/operational_research/main/charpter7/p4.htm 好网址 转载于:https://www.cnblogs.com/dplearning/p/3668213.html

基于AI的视频分析正在推动智能社会的到来

来源:资本实验室摘要:随着我们日渐掌握越来越强大的计算能力、更先进的计算算法、更易用的软件系统,以及不断下降的数据存储成本,我们正在具备对无处不在的大量视频进行实时分析的能力。尤其值得关注的是,当人工智能技…

Reporting Services 的伸缩性和性能表现规划(转载)

简介 Microsoft? SQL Server? Reporting Services 是一个将集中管理的报告服务器具有的伸缩性和易管理性与基于 Web 和桌面的报告交付手段集于一身的报告平台。Reporting Services 是微软功能全面的商业智能平台的重要组件。 对于许多组织,通过报告提供信息是日常…

卷积在计算机中实现+pool作用+数据预处理目的+特征归一化+理解BN+感受野理解与计算+梯度回传+NMS/soft NMS

一.卷积在计算机中实现 1.卷积 将其存入内存当中再操作(按照“行先序”): 这样就造成混乱. 故需要im2col操作,将特征图转换成庞大的矩阵来进行卷积计算,利用矩阵加速来实现,牺牲了…