python3从零学习-5.10.4、wsgiref—WSGI实用程序和参考实现

78 篇文章 1 订阅
78 篇文章 0 订阅

wsgiref — WSGI实用程序和参考实现

Web服务器网关接口(WSGI)是用Python编写的Web服务器软件和Web应用程序之间的标准接口。有了标准的接口,就可以很容易地将支持WSGI的应用程序与许多不同的web服务器一起使用。

 

只有web服务器和编程框架的作者才需要了解WSGI设计的每一个细节和细节。仅仅为了安装WSGI应用程序或使用现有框架编写web应用程序,您不需要了解WSGI的每个细节。

 

wsgiref是WSGI规范的一个参考实现,可用于向web服务器或框架添加WSGI支持。它提供了操作WSGI环境变量和响应标头的实用工具,实现WSGI服务器的基类,为WSGI应用程序提供的演示HTTP服务器,以及检查WSGI服务器和应用程序是否符合WSGI规范的验证工具(PEP 3333)。

 

有关WSGI的更多信息,以及教程和其他资源的链接,请参见https://wsgi.readthedocs.org/。

 

wsgiref.util - WSGI环境工具

 

这个模块为使用WSGI环境提供了各种实用功能。WSGI环境是包含PEP 3333中描述的HTTP请求变量的字典。所有接受环境参数的函数都期望提供符合wsgi的字典;有关详细的规范,请参阅PEP 3333。

 

  • wsgiref.util.guess_scheme(environ)

返回wsgi是否的猜测。通过检查环境字典中的https环境变量,url_scheme应该是“http”或“https”。返回值是一个字符串。

 

当创建一个封装CGI或类似CGI的协议(如FastCGI)的网关时,这个功能非常有用。通常,当通过SSL接收到请求时,提供此类协议的服务器将包含一个值为“1”“yes”或“on”的HTTPS变量。因此,如果找到这样的值,这个函数返回“https”,否则返回“http”。

 

  • wsgiref.util.request_uri(environ, include_query=True)

使用PEP 3333的“URL重构”部分中找到的算法返回完整的请求URI,可选地包括查询字符串。如果include_query为假,则查询字符串不包含在结果URI中。

 

  • wsgiref.util.application_uri(environ)

与request_uri()类似,只是会忽略PATH_INFO和QUERY_STRING变量。结果是请求处理的应用程序对象的基URI。

 

  • wsgiref.util.shift_path_info(environ)

将单个名称从PATH_INFO移到SCRIPT_NAME并返回该名称。环境字典已当场修改;如果需要保持原始的PATH_INFO或SCRIPT_NAME不变,请使用副本。

 

如果PATH_INFO中没有其他路径段,则不会返回任何路径段。

 

通常,这个例程用于处理请求URI路径的每个部分,例如将路径视为一系列字典键。这个例程修改传入的环境,使其适合调用位于目标URI的另一个WSGI应用程序。例如,如果有一个位于/foo的WSGI应用程序,请求的URI路径是/foo/bar/baz,并且位于/foo的WSGI应用程序调用shift_path_info(),它将收到字符串“bar”,并且环境将被更新以适合传递到位于/foo/bar的WSGI应用程序。也就是说,SCRIPT_NAME将从/foo更改为/foo/bar, PATH_INFO将从/bar/baz更改为/baz。

 

当PATH_INFO只是一个" / "时,这个例程返回一个空字符串并在SCRIPT_NAME后面附加一个斜杠,尽管空路径段通常被忽略,而且SCRIPT_NAME通常不以斜杠结尾。这是有意的行为,以确保应用程序在使用这个例程进行对象遍历时能够区分以/x结尾的uri和以/x/结尾的uri。

 

  • wsgiref.util.setup_testing_defaults(environ)

为了测试的目的,使用简单的默认值来更新环境。

 

  • wsgiref.util.is_hop_by_hop(header_name)

如果' header_name '是一个HTTP/1.1“逐跳”报头,如RFC 2616所定义,返回true。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值