wsgi

wsgi也就是web服务网关接口,他是一种网络传输协议,在python中实现它的是wsgiref模块和uwsgi模块

wsgiref模块封装了wsgi,使得咱们在使用python的时候不用再去考虑http协议,socket发送等等,只要去使用这个模块就好,当然wsgiref模块效率较低,只是个人测试使用,真正在公司部署网络应用的时候使用的是uwsgi模块

这里先给出wsgiref模块的简单示例,有个感性的认识,后续在分析实现原理;代码如下:

from wsgiref.simple_server import make_server

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

if __name__ == '__main__':
    # 创建socket对象,只要有请求到来,就会执行socket函数
    httpd = make_server('', 9999, application)
    print("Serving HTTP on port 9999...")
    # 开启事件监听循环
    httpd.serve_forever()

这个示例程序很简单,创建一个httpd服务器,并监听9999端口,当有客户端请求时,在浏览器显示Hello, web字符串;

在循环监听的过程中,每次请求来了就会执行application函数

  • 函数中的erviron参数就包含了和请求相关的所有数据
  • start_response 参数包含了相应信息
  • 函数最后return的就是最后返回的html内容
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容