zoukankan      html  css  js  c++  java
  • web请求响应过程与python主流三大web框架

    web请求流程:Django 为例

    首先一个浏览器通过http协议发送一个请求,到我们的服务器,首先是web服务网关接口,接收到这个请求,这里Django默认用的是wsgiref模块
    这个模块首先解析这个请求中的数据,并将这个数据全部解析成一个reque的大字典,wsgiref封装的就是socket连接和数据解析的功能,
    解析之后得到数据,就能知道浏览器的请求是什么,然后拿着请

    求类型和urls中的路由与视图函数映射关系获取到到低是要哪个视图,匹配成功之后,再到views.py
    的具体的视图中去,执行这个具体的特定的视图函数,这个视图函数在执行的过程中,需要首先到
    templates模板层中去找到特定的html文件,这个html文件就是前端渲染出来的效果,这个html可以通过
    模板语法得到后端也就是这个视图函数中生成好的数据,在这个过程中视图函数也可以去操作模型层,通过模型层的orm,生成数据库的表,这个模型可以连接到
    后端的数据库,这个数据库可以是mysql 也可以是mongoDB,很多数据库都可以,模型来操作数据库,视图函数将得到的模板html文件,与模型一起渲染,最后将
    结果发送给
    wsgiref模块也就是web网关接口,web网关接口再将数据打包使其符合HTTP
    协议发送到浏览器,这样一次完整的请求就算结束了.

    那么,什么是web框架呢?web框架就是上面图中的那个红色的部分,就是连接浏览器与数据库操作,中间的部分,全部封装好的一个框架,就叫做web框架.我们只需要使用这个框架往特定的区域填写代码就可以了

    python三大主流框架:

    a:socket服务

    b;路由与视图映射关系

    c:模板渲染

    Djangp:大而全.类似于航空母舰,但是有点笨重

      a用的是别人的,wsgiref 上线之后会变成uwsgi

      b:自己写的

      c:自己写的 用的是一个类似于jinja2的模块

    flask:小而精,轻量级类似于游骑兵,

      a用的别人的 werkzeug

      b;自己写的

      c:用的别人的 jinja2

    tornado:异步非阻塞,高并发的智能用这个

      abc三者都是自己写的

  • 相关阅读:
    呈现系统-组件间的通信方式(7)
    web项目中图标的前端处理方案
    ADO--数据访问技术
    canvas--绘制路径
    canvas--改变颜色
    canvas-在画布中画两个方块(一个空心一个实体)
    canvas--画布《第一步》
    拼图游戏【简单】
    判断字符串是否为空--string.Empty、string=""、s.length==0
    判断Char是否为数字
  • 原文地址:https://www.cnblogs.com/1832921tongjieducn/p/11392049.html
Copyright © 2011-2022 走看看