• Web开发:常用框架


    1、Web编程:WSGI

      WSGI将Web服务分为两个部分:服务器和应用程序。WSGI服务器只负责与网络相关的两件事:接收浏览器的HTTP请求、向浏览器发送HTTP应答;而对HTTP请求的具体处理逻辑,则通过调用WSGI应用程序进行。WSGI的更多信息见:Web开发:CGI和WSGI

      

      实现一个WSGI应用,只需要满足3个要求:

    1. 是可调用的,比如是一个函数,或者是一个可调用类(具有__call__方法)的实例
    2. WSGI应用应当返回一个可迭代(iterable)的值,比如字符串列表
    3. WSGI应用在返回之前,应当调用WSGI服务器传入的start_response函数发送状态码和HTTP报文头

    2、常用的WSGI服务器

    2.1、wsgiref

      wsgiref是WSGI规范的一个参考实现,它可以用来向web服务器或框架添加WSGI支持。它提供了操作WSGI环境变量和响应头的实用程序,用于实现WSGI服务器的基类,一个为WSGI应用程序提供服务的演示HTTP服务器,以及一个验证工具,它检查WSGI服务器和应用程序是否符合WSGI规范(PEP 3333)。

    2.2、uWSGI

      uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx,uWSGI等服务器)与web应用(如用Flask框架写的程序)通信的一种规范。

      要注意 WSGI / uwsgi / uWSGI 这三个概念的区分。

    • WSGI是一种通信协议。
    • uwsgi是一种线路协议而不是通信协议,在此常用于在uWSGI服务器与其他网络服务器的数据通信。
    • 而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。

      uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型描述,它与WSGI相比是两样东西。

      使用uWSGI时,web的访问过程如下:

      详细内容请参考:https://blog.csdn.net/yjk13703623757/article/details/79457913

    2.3、gunicorn

      Gunicorn“绿色独角兽”是一个被广泛使用的高性能的Python WSGI UNIX HTTP服务器,移植自Ruby的独角兽(Unicorn )项目,使用pre-fork worker模式,具有使用非常简单,轻量级的资源消耗,以及高性能等特点。

      Gunicorn 服务器作为wsgi app的容器,能够与各种Web框架兼容(flask,django等),得益于gevent等技术,使用Gunicorn能够在基本不改变wsgi app代码的前提下,大幅度提高wsgi app的性能。

    3、Web框架

    3.1、Python常用Web框架

      Django:一个开放源代码的Web应用框架,由Python写成。采用了MVC的框架模式,即模型M,视图V和控制器C。自带的服务器基于Python wsgiref 模块实现。

      Flask:Flask是一个使用Python编写的轻量级 Web 应用框架。其WSGI工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。

      Tornado是一个异步网络库以及基于此之上的web架构库因此它包含四个部分:

        一套适应web应用开发的框架,以这个架构可很快构建web应用;

        涉及web应用的http协议和websocket协议的实现(客户端/服务器端);

        非阻塞的异步网络通讯库;

        异步操作的协程(coroutine)库。

          

      

      

  • 相关阅读:
    dom2
    小程序自定义组件之省市区地址三级联动
    使用图片作为a标签的点击按钮时,当触发touchstart的时候,往往会有一个灰色的背景,想要去掉的话可以用下面这种方式
    常用UI模板,loading框,提醒框,弹框确认框
    css 超出规定行数自动隐藏
    touch.js下载使用方式
    各种文字编码解码方式大合集
    自用公共js文件
    常用UI框架
    各种HTML锚点跳转方式
  • 原文地址:https://www.cnblogs.com/bad-robot/p/9737640.html
Copyright © 2020-2023  润新知