WSGI是将Python服务器端程序连接到Web服务器的通用协议。

由于WSGI的通用性,出现了独立的WSGI程序,例如uWSGI和Apache的mod_wsgi。

WSGI的全称为Web Server Gateway Inter-face,也可称作Python Web Server Gateway Inter-face,开始于2003年,为Python语言定义Web服务器和服务器端程序的通用接口规范。

因为WSGI在Python中的成功,所以其他语言诸如Perl和Ruby也定义了类似WSGI作用的接口规范。

WSGI的作用如图5.9所示。

从图5.9中可见WSGI的接口分为两个:一个是与Web服务器的接口,另一个是与服务器端程序的接口。

WSGI Server与Web服务器的接口包括uwsgi、fast cgi等,服务器端程序的开发者无须学习这部分的详细内容。

服务器端的开发者需要关注的是WSGI与服务器程序的接口。

------------------------------------------------------------------------------------------------

WSGI的服务器程序的接口非常简单,以下是一个服务器端程序的例子,将该文件保存为webapp.py:

def application(environ, start_response):   
    start_response('200 OK', [('Content-Type', 'text/html')])   
    return '<b>Hello, world!<、b>'

该代码只定义了一个函数application,所有来自Web服务器的HTTP请求都会由WSGI服务转换为对该函数的调用。

该示例的application函数中没有复杂的处理,只是通过start_response返回了状态码,并通过return返回了一个固定的HTTP消息体。

与该服务器端程序相对应的是下面的WSGI Server程序:

#coding=utf-8
#引入Python的WSGI包
from wsgiref.simple_server import make_server
#引入服务器端程序的代码
from webapp import application
#实例化一个监听8080端口的服务器
server=make_server('', 8080, application)
#开始监听HTTP请求:
server.serve_forever()

将该WSGI Server的程序保存为wsgi_server.py,通过下面的命令即可启动一个Web服务器,该服务器对所有的请求都返回Hello World页面:

python wsgi_server.py

注意:

虽然WSGI的设计目标是连接标准的Web服务器(Ng-inx、Apache等)与服务器端程序,但WSGI Server本身也可以作为Web服务器运行。

由于性能方面的原因,该服务器一般只做测试使用,不能用于正式运行。

优质内容筛选与推荐>>
1、源代码的下载和编译
2、python 迭代器和生成器
3、TimeUnit类中的sleep() 和Thread.sleep()
4、IO流——实训作业
5、Dinic


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn