zoukankan      html  css  js  c++  java
  • WSGI协议解析

    WSGI协议中包含两个角色:服务器方和应用程序:

    • 服务器方:其调用应用程序,给应用程序提供(环境信息)和(回调函数), 这个回调函数是用来将应用程序设置的http header和status等信息传递给服务器方。

    • 应用程序:请求的统一入口,所有的请求都进入到这个app中来处理,这个app说白了就是一个函数(类中的call是一样的道理)。用来生成返回的header,body和status,以便返回给服务器方。

    一个符合WSGI的“Hello World”应用程序如下所示:

    def Application(environ, start_response):
        start_response('200 OK', [('Content-Type', 'text/plain')])
        yield "Hello world!
    "
    

    定义了一个名为Application的应用程序,environ和startresponse,environ是一个字典包含了CGI中的环境变量,startresponse也是一个callable,接受两个必须的参数,status(HTTP状态)和responseheaders(响应消息的头)。 第二行调用了startresponse,状态指定为“200 OK”,消息头指定为内容类型是“text/plain” 第三行将响应消息的消息体返回。

    基于这种协议,实现服务器方和应用程序就可以开发一个web框架。目前比较常用的web框架:Django、Flask、Tornado都是实现了基于WSGI协议进一步封装的,把收、发请求响应的过程实现了,对于开发者来说只需要关注自己的业务实现即可。

  • 相关阅读:
    网格走法数目
    字典序(数据字典)
    异或(数据字典)
    头条校招
    Python中的zip()
    什么是“背书”
    求十进制整数的任意进制转换
    安装并使用pyecharts库(0.5.10)
    pycharm使用Ctrl+滚轮调整字体大小
    Anaconda中安装pyecharts
  • 原文地址:https://www.cnblogs.com/tianboblog/p/9680123.html
Copyright © 2011-2022 走看看