WSGI

WSGI

reference: http://webpython.codepoint.net/wsgi_tutorial

WSGI是一种标准,它对web应用和web服务器的交互接口进行了描述,那么遵从WSGI 应用接口的web应用程序就可以在遵从WSGI服务器接口的任意实现上运行。WSGI服务器接受来自所有客户端的请求,并将请求传递给相应的应用程序处理,并返回应用程序的处理结果给客户端。

WSGI web应用的接口实现需要满足可调用,因此接口实现可以是函数、方法、拥有__call__方法的类或实例,我们将其统称为可调用对象。可调用对象还需要满足:

1.拥有两个位置参数:

    (1)包含环境变量的字典(environ)。当有客户端请求时,字典由服务器填充。

    (2)一个可调用的函数(start_response)。向服务器返回状态码和响应头(response header)信息

2.必须以可迭代的方式返回字符串类型的响应体(response body),响应体需要选择合理的可迭代对象,否则会影响性能.

      一个非常简单的满足WSGI应用条件的实例:

     

fromwsgiref.simple_server importmake_server
 
defsimple_app(environ, start_response):
    status ='200 OK'
    response_headers =[('Content-type''text/plain')]
    start_response(status, response_headers)
    #returnu"This is hello wsgi app".encode('utf8')
    return[u"This is hello wsgi app".encode('utf8')]
 
httpd =make_server('', 8000, simple_app)
print"Serving on port 8000..."
httpd.serve_forever()

若返回的响应体为注释的信息,则服务器会一个字符一个字符的传送,效率自然就很慢了




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值