Python web开发一定要用框架吗?

2024-11-22 23:35:04
推荐回答(1个)
回答(1):

Python web 开发不一定要用框架。
因为Python Web框架也是Python开发出来的。只是为了减少重复造轮子,降低开发门槛。
1、Python 的 Web 并不作为语言的一部分实现。因为通用语言的设计目标,Python 通过 C extension 形式的标准库,有原生的网络编程支持。也就是说,任何人都可以用 Python 的 socket 接口自己编写 Web 服务器。由于图灵机的等价性,用 Python 实现一个 PHP VM 也是技术可行的。
2、但是绝大多数人用Python做Web开发的时候不会选择自己用 socket 去实现一个服务器,因为 Python 官方有Web设计的标准—— WSGI (PEP 333 python.org/dev/peps...)。WSGI定义的标准将 Web 应用划分为 WSGI Application 和 WSGI Server。后者类似PHP的Web运行时,提供对标准输入输出流的封装,前者则类似自己写的PHP应用,在封装后的环境中对具体应用进行 Web 开发。强烈建议阅读一下 PEP 333,对于理解WSGI的这种划分很有帮助。
3、目前为止,WSGI 在主流 Python 应用中得到广泛支持,所谓的 Python Web 框架,其实都是符合 WSGI Application 规范下,对 Web 开发中环境进行的封装,如果有精力,阅读一下 Bottle 框架的源码,就会非常有收获——只有一个文件,但是完整实现 WSGI 并封装为自己风格的一个环境(一个 Bottle 的实例就是一个WSGI Application,实现了__call__方法)。像Django这种框架已经逾越了 Web 框架范围的了,将ORM、表单验证等等聚集成一块,有点像 RoR 的感觉。真正和 PHP 的 Web 环境等价的,是类似Bottle这样的微内核框架。