WSGI的工作流程

  • 1.WSGI作用
    • 1.1 工作流程图
    • 1.2 主要作用
  • 2. url参数解析
    • 2.1 查询字符串QUERY_STRING
    • 2.2 路径字符串PATH_INFO
  • 3. webob解析url
    • 3.1 解析


1.WSGI作用

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

1.1 工作流程图

可参考图:
WSGI的工作流程_第1张图片

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.2 路径字符串PATH_INFO

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

3. webob解析url

webob模块官网学习参考

3.1 解析

你可能感兴趣的:(python)