Django框架请求生命周期实现原理


Posted in Python onNovember 13, 2020

先看一张图吧!

Django框架请求生命周期实现原理

1、请求生命周期

- wsgi, 他就是socket服务端,用于接收用户请求并将请求进行初次封装,然后将请求交给web框架(Flask、Django)

- 中间件,帮助我们对请求进行校验或在请求对象中添加其他相关数据,例如:csrf、request.session

- 路由匹配

- 视图函数,在视图函数中进行业务逻辑的处理,可能涉及到:orm、templates => 渲染

- 中间件,对响应的数据进行处理。

- wsgi,将响应的内容发送给浏览器。

2、什么wsgi

wsgi:web服务网关接口

实现该协议的模块:

  • - wsgiref(测试版本,性能特别差)
  • - werkzurg
  • - uwsig

wsgiref示例:

from wsgiref.simple_server import make_server
 
def run_server(environ, start_response):
  start_response('200 OK', [('Content-Type', 'text/html')])
  return [bytes('<h1>Hello, web!</h1>', encoding='utf-8'), ] #字节
 
 
if __name__ == '__main__':
  httpd = make_server('127.0.0.1', 8000, run_server)
  httpd.serve_forever()

werkzeug示例:

from werkzeug.wrappers import Response
from werkzeug.serving import run_simple
 
def run_server(environ, start_response):
  response = Response('hello')
  return response(environ, start_response)   #对象
 
if __name__ == '__main__':
  run_simple('127.0.0.1', 8000, run_server)

3、视图FBV

url - 函数

CBV

url - view

FBV(function base view)与CBV(class base view)本质是一样的,只是fbv基于函数,cbv基于类。只不过fbv较cbv往后多执行了几步。

4、rest-framework

rest-framework从dispatch方法开始介入,执行完视图,如果有rest-framework组件,就执行rest-framework。

5、restfui规范

查看restful规范详情

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现调用其他python脚本的方法
Oct 05 Python
python基于xmlrpc实现二进制文件传输的方法
Jun 02 Python
用Python抢过年的火车票附源码
Dec 07 Python
Python三级目录展示的实现方法
Sep 28 Python
NetworkX之Prim算法(实例讲解)
Dec 22 Python
Python合并多个Excel数据的方法
Jul 16 Python
对IPython交互模式下的退出方法详解
Feb 16 Python
python 随机生成10位数密码的实现代码
Jun 27 Python
基于Tensorflow批量数据的输入实现方式
Feb 05 Python
Python3使用腾讯云文字识别(腾讯OCR)提取图片中的文字内容实例详解
Feb 18 Python
python 6.7 编写printTable()函数表格打印(完整代码)
Mar 25 Python
简述 Python 的类和对象
Aug 21 Python
python在地图上画比例的实例详解
Nov 13 #Python
python语言实现贪吃蛇游戏
Nov 13 #Python
Python使用struct处理二进制(pack和unpack用法)
Nov 12 #Python
python切割图片的示例
Nov 12 #Python
教你使用Sublime text3搭建Python开发环境及常用插件安装另分享Sublime text3最新激活注册码
Nov 12 #Python
Django执行源生mysql语句实现过程解析
Nov 12 #Python
Django Model层F,Q对象和聚合函数原理解析
Nov 12 #Python
You might like
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
通过百度地图获取公交线路的站点坐标的js代码
2012/05/11 Javascript
jquery 插件学习(二)
2012/08/06 Javascript
如何让div span等元素能响应键盘事件操作指南
2012/11/13 Javascript
jQuery制作仿腾讯web qq用户体验桌面
2013/08/20 Javascript
javascript实现的HashMap类代码
2014/06/27 Javascript
AngularJS入门教程之AngularJS指令
2016/04/18 Javascript
详解使用Vue.Js结合Jquery Ajax加载数据的两种方式
2017/01/10 Javascript
jQuery实现验证表单密码一致性及正则表达式验证邮箱、手机号的方法
2017/12/05 jQuery
JavaScript动态创建二维数组的方法示例
2019/02/01 Javascript
利用Bootstrap Multiselect实现下拉框多选功能
2019/04/08 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
M2实现Nodejs项目自动部署的方法步骤
2019/05/05 NodeJs
vue 实现超长文本截取,悬浮框提示
2020/07/29 Javascript
Python中__name__的使用实例
2015/04/14 Python
python类和函数中使用静态变量的方法
2015/05/09 Python
python下setuptools的安装详解及No module named setuptools的解决方法
2017/07/06 Python
Django异步任务之Celery的基本使用
2019/03/23 Python
Ubuntu18.04中Python2.7与Python3.6环境切换
2019/06/14 Python
python tkinter控件布局项目实例
2019/11/04 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
Python 求向量的余弦值操作
2021/03/04 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
Skyscanner加拿大:全球旅行搜索平台
2018/11/19 全球购物
马来西亚奢侈品牌购物商城:Valiram 247
2020/09/29 全球购物
初婚未育证明
2014/01/15 职场文书
父亲追悼会答谢词
2014/01/17 职场文书
行政人事岗位职责
2014/03/17 职场文书
公务员党员评议表自我鉴定
2014/09/14 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
小学班主任事迹材料
2014/12/17 职场文书
黑白记忆观后感
2015/06/18 职场文书
聊聊基于pytorch实现Resnet对本地数据集的训练问题
2022/03/25 Python