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 中的int()函数怎么用
Oct 17 Python
利用Tkinter(python3.6)实现一个简单计算器
Dec 21 Python
Python Grid使用和布局详解
Jun 30 Python
Python绘制的二项分布概率图示例
Aug 22 Python
解决Python中定时任务线程无法自动退出的问题
Feb 18 Python
Python识别快递条形码及Tesseract-OCR使用详解
Jul 15 Python
python selenium登录豆瓣网过程解析
Aug 10 Python
python读写csv文件的方法
Aug 13 Python
Pytorch中的VGG实现修改最后一层FC
Jan 15 Python
在TensorFlow中屏蔽warning的方式
Feb 04 Python
Python递归实现打印多重列表代码
Feb 27 Python
撤回我也能看到!教你用Python制作微信防撤回脚本
Jun 11 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
我的论坛源代码(一)
2006/10/09 PHP
php带抄送和密件抄送的邮件发送方法
2015/03/20 PHP
php结合正则获取字符串中数字
2015/06/19 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
PHP实现websocket通信的方法示例
2018/08/28 PHP
php实现微信企业转账功能
2018/10/02 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
实现复选框全选/全不选切换
2006/12/23 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
javascript 通用loading动画效果实例代码
2014/01/14 Javascript
js实现具有高亮显示效果的多级菜单代码
2015/09/01 Javascript
BootStrap和jQuery相结合实现可编辑表格
2016/04/21 Javascript
动态更新highcharts数据的实现方法
2016/05/28 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
2017/02/05 Javascript
vue中子组件向父组件传递数据的实例代码(实现加减功能)
2018/04/20 Javascript
搭建vue开发环境
2018/07/19 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
Python实现过滤单个Android程序日志脚本分享
2015/01/16 Python
如何使用python爬取csdn博客访问量
2016/02/14 Python
Python调用C# Com dll组件实战教程
2017/10/12 Python
Python 模拟员工信息数据库操作的实例
2017/10/23 Python
python微信公众号开发简单流程
2018/03/23 Python
python中使用print输出中文的方法
2018/07/16 Python
python使用pandas处理大数据节省内存技巧(推荐)
2019/05/05 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
2019/08/22 Python
python中tkinter窗口位置\坐标\大小等实现示例
2020/07/09 Python
党校个人自我鉴定范文
2014/03/28 职场文书
2014年企业党建工作总结
2014/12/18 职场文书
工作自我评价范文
2015/03/05 职场文书
2014年底个人工作总结
2015/03/10 职场文书
孟佩杰观后感
2015/06/17 职场文书
2019朋友新婚祝福语精选
2019/10/10 职场文书
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python
微软Win11什么功能最惊艳? Windows11新功能特性汇总
2021/11/21 数码科技