wsgi application

2018-12-17  本文已影响0人  yepeng05

WSGI 是一个规范(协议),定义了 Web服务器 如何与 Python应用程序 进行交互。
WSGI 协议约定的 application 必须是一个可调用的对象,它接受两个参数的输入,一个是cgi服务器的环境变量,另外一个参数是一个函数,并且该 application 返回的是一个可迭代对象,这个对象即发送给客户端的 body 中的内容。
下面是一个标准的 wsgi application 或者说是 wsgi app

from wsgiref.simple_server import make_server

def simple_app(environ, start_response):
    status = '200 OK'
    headers = [('Content-type', 'text/plain; charset=utf-8')]
    start_response(status, headers)
    
    return ["Hello, World".encode()]
    # Python 2中直接 return ["Hello, World".encode()]

# 以下代码非 wsgi app 所必须
if __name__ == '__main__':
    server = make_server('localhost', 8000, simple_app)
    print("Serving HTTP on port 8000...")
    server.serve_forever()

    # server.handle_request() 
    # 处理一个request之后立即退出程序

Python的Web框架,本质上来说都是一个wsgi application。

在执行了 make_server 方法后,就已经有了一个处于监听状态的服务器实例了,接下来要让服务器具有处理接受请求的能力,这就轮到 handle_request 方法发挥作用了。

上一篇下一篇

猜你喜欢

热点阅读