首先,理解一个Web应用的本质就是:
- 浏览器发送一个HTTP请求;
- 服务器收到请求,生成一个HTML文档;
- 服务器把HEML文档作为HTTP响应的Body发送给浏览器;
- 浏览器收到HTTP响应,从HTTP Body中取出HTML文档并显示。
我们不希望接触到TCP连接、HTTP原始请求和响应格式,所以,需要一个统一的接口,让我们专心用Python编写Web业务。WSGI(Web Server Gateway Interface)接口的定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求。
def application(environ, start_response): #environ是包含所有HTTP请求信息的`dict`对象。
start_response('200 OK', [('Content-Type', 'text/html')]) # 发送HTTP请求响应的函数。
return [b'<h1>Hello, web!</h1>']
有了WSGI
的处理函数,就能对一个HTTP请求进行响应。
HTTP请求(URL)——>WSGI处理函数——>处理URL
但是,针对每个HTTP请求都要编写一个这样的处理函数,太复杂了。
Web框架能帮我们完成URL到函数的映射,我们只需要关心函数怎样处理URL ,生成什么样的响应就好。
Python 中常见的Web框架有Django
, flask
, Tornado
等
编写Web框架,首先要实现把一个函数映射为URL处理函数(函数中包含URL信息)。
光理解廖雪峰老师写的内容都费劲。
要是自己写一个Web框架,根本不知道从哪儿下手。
这里有跟着教程写的源码:github。
有了ORM框架和Web框架,剩下的Web开发就简单多了。
这里有参考文章:
编写Web框架
Python廖雪峰实战web开发(Day5-编写web框架)