欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

WSGI的工作流程

程序员文章站 2022-07-15 11:37:35
...


1.WSGI作用

WSGI是一套协议,主要作用是规范了wsgi server 和wsgi app之间的接口,

1.1 工作流程图

可参考图:
WSGI的工作流程

1.2 主要作用

具体表现为如下:

  • 将http请求头部的k,v对封装为字典environ和函数start_response传递给wsgi app;
  • wsgi会调用wsgi app进行处理请求,在调用前首先由wsgi app调用start_response构建相应包头
  • 总结代码如下:
    下面时python 手册上的一个案例,其中wsgiref就是一个框架,现在只要定义好app函数或者其他可调用类型,然后将environ和start_response传递给app,最后将app可调用类型传递给框架wsgi server框架make_server已经实现动态页面。
from wsgiref.util import setup_testing_defaults
from wsgiref.simple_server import make_server

# A relatively simple WSGI application. It's going to print out the
# environment dictionary after being updated by setup_testing_defaults
#############################################################
#主要给app传递environ和start_response函数
#############################################################
def simple_app(environ, start_response):
    setup_testing_defaults(environ)

    status = '200 OK'
    headers = [('Content-type', 'text/plain; charset=utf-8')]

    start_response(status, headers)

    ret = [("%s: %s\n" % (key, value)).encode("utf-8")
           for key, value in environ.items()]
    return ret

httpd = make_server('', 8000, simple_app)
print("Serving on port 8000...")
httpd.serve_forever()

2. url参数解析

2.1 查询字符串QUERY_STRING

查询字符串的作用和意义,查询字符串就是进入某一菜单或某一栏目的一个url,这个在设计网站的url时比较注重,举例如下:
WSGI的工作流程

2.2 路径字符串PATH_INFO

路径字符串就是如上图片中得category.html
在后端程序主其实很大一部分精力就是在处理PATH_INFOQUERY_STRING信息,根据他俩得信息给用户反馈具体得页面内容。因此这也就是wsgi将请求字典传递给后端程序,后端程序第一步就要解决分析的k v值。

3. webob解析url

webob模块官网学习参考

3.1 解析

相关标签: python