学习WSGI

 Web应用就是先把HTML用文件保存好,用一个现成的HTTP服务器软件,接收用户请求,从文件中读取HTML,再返回。

Apache、Nginx、Lighttpd等这些常见的静态服务器就是干这件事情的。

我们需要一个统一的接口,让我们专心用Python编写Web业务。

这个接口就是WSGI:Web Server Gateway Interface。

WSGI接口定义非常简单,它只要求Web开发者实现一个函数,就可以响应HTTP请求。

 

无论多么复杂的Web应用程序,入口都是一个WSGI处理函数。

HTTP请求的所有输入信息都可以通过environ(一个包含所有HTTP请求信息的dict对象)获得,HTTP响应的输出都可以通过start_response()加上函数返回值作为Body。

 

WSGI提供的接口虽然比HTTP接口高级了不少,但和Web App的处理逻辑比,还是比较低级,我们需要在WSGI接口之上能进一步抽象,让我们用一个函数处理一个URL,至于URL到函数的映射,就交给Web框架来做。直接选择一个比较流行的Web框架——Flask来使用。

Flask通过Python的装饰器在内部自动地把URL和函数给关联起来。

除了Flask,常见的Python Web框架还有:

  • Django:全能型Web框架;

  • web.py:一个小巧的Web框架;

  • Bottle:和Flask类似的Web框架;

  • Tornado:Facebook的开源异步Web框架。

Web框架把我们从WSGI中拯救出来了。现在,我们只需要不断地编写函数,带上URL,就可以Web App的开发了。

posted @ 2022-09-30 10:20  不不田鼠  阅读(19)  评论(0编辑  收藏  举报