zoukankan      html  css  js  c++  java
  • 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)库。

          

      

      

  • 相关阅读:
    Linux NFS 和 Samba 共享配置
    ORA00600 internal error code, arguments [%s] [%s] [%s] [keltnfyldmInit] [46] [1] 错误的解决方法
    Linux 平台下 RMAN 全备 和 增量备份 shell 脚本
    dba_tables 和 dba_segments 表中 blocks 的区别
    RMAN 同机复制数据库
    如何 搭建 RMAN 备份平台
    RMAN 系列(五) RMAN 还原 与 恢复
    dba_tables 和 dba_segments 表中 blocks 的区别
    用RMAN复制 搭建 物理 Data Gurad 环境
    企业管理器(OEM)介绍: Grid Control 和 Database Control
  • 原文地址:https://www.cnblogs.com/bad-robot/p/9737640.html
Copyright © 2011-2022 走看看