所以如果要做web开发,服务端就要涉及到http请求的接收,解析,http响应的发送。但是这个事儿比较麻烦,耗时。真正的业务只有根据请求生成html。于是我们需要一个接口来做上述复杂耗时的工作。需要一个符合WSGI规范的服务器来调用我们的写的application
理论上,用上面的WSGI就完全足够开发web应用了。但是开发效率比较低,所以就有了各种各样的web框架来提高开发效率。
用web框架,比用WSGI方便了很多。可以用一行代码指定 url和函数绑定。获取请求数据使用request来获取。
运行结果:
web框架解决了wsgi绑定判断url的麻烦,但是return 的http响应内容依然是字符串拼接,也就是需要在python代码里面用字符串写html代码。这就很难受了。当然,我们可以自己用编辑器写好html代码,然后读取这个html文件也是可以的。不过这是个比较麻烦的事儿。所以就有了模板templates。用MVC的思想,直接用写好html模板,然后return 的时候给这个模板提供数据即可。
python的web开发内置了wsgi和一个wsgi服务器参考实现,通过这个wsgi接口理论上可以进行web开发了。但是有三个麻烦的地方。
为了简化1,2问题,于是有了web框架,如flask Django等,他们通过装饰器的方式去绑定url和处理函数。但是任然没有解决第3个问题。
而模板就是为了解决问题3的,templates,如jinja2 Django自带等,采用MVC的思想,单独编写html代码,然后return 的时候绑定数据。
到此,用python做web开发的大致思路就基本通了。特别感谢廖雪峰老师的教程。