1. Web work flow
在上一篇文章中,我们知道web工作刘如下:
the web client <-> the web server <-> the socket <-> (uwsgi protocol)uWSGI(WSGI) <-> Python
并用例子说明了,application server(uWSGI)要做的事情:
- 从输入中获取数据构造env字典(
handle_one_request, parse_request
),里面一般包括:- PATH_INFO:
- HTTP_HOST,
- SERVER_PORT
- REQUEST_METHOD
- QUERY_STRING(GET),
- CONTENT_LENGTH(POST),
- wsgi.input(POST请求中,框架会从这个句柄中获取POST请求携带的data)
-
GET request
-
POST request
- 根据application返回的output,构造http response
- application先调用
start_response
构造response header - application server在把output,添加在后面,行成response
- application先调用
2. 框架做的事情
- URL mapping
-
创建URL map
-
添加路由
-
URL map详情
-
URL match
-
- Request and Response的封装
- Request
- Response
- template 引擎
- 模板引擎:相当于构造了一个函数,输入是模板需要的变量,输出是html
- 错误,异常处理
- 设置错误处理函数
- 根据错误的不同,output显示不一样的信息:例如:500则显示traceback;其他显示有用的msg
3. 框架还可以做的事情
- 安全支持:放CSRF, XSS, SQL\命令行注入
- session支持: token
- 权限管控: has_permission
- ORM支持
- admin后台管理