之前写python的时候一直都是直接套用框架,这周上课的时候被作业逼着了解了下一些比较底层的东西,比如CGI编程和WSGI编程
CGi Common Gateway Interface, 是目前最通用的web编程接口,几乎兼容任何web语言(因为这些语言本身就是遵循CGI标准的)
WSGI Web Server Gateway Interface 是对CGI的一种封装,最早由python提出,目前也可兼容多种语言。
下面说说CGI和WSGI在用python编程时的区别
从操作上来说,CGI运行python是这样的,在指定路径下 执行命令
python -m CGIHTTPServer
-m的意思就是把某个模块以脚本形式运行,也就是说直接执行CGIHTTPServer这个模块
然后在浏览器上输入对应路径的py文件
这样会带来一个问题,我在前端需要执行某个脚本的时候,是通过url直接访问该脚本,并通过CGIHTTPServer来运行的,这样其实有点反人类,比较符合逻辑的做法是将后台的脚本是隐藏的,不应该直接暴露在前端
而且,在早期,不止有CGI一种接口,还有诸如fastCGI等,各种框架基本都只兼容其中一种接口,这样就给开发者带来困扰。然后,为了统一接口,WSGI就出现了。(我也不知道为什么WSGI的出现不是继续分裂接口而是统一接口,反正历史就是这样的)
WSGI的调用更接近现在python的各种框架的方法
通过uwsgi工具加载一个py文件,然后在浏览器访问localhost,uwsgi会将某个url重定向到py脚本上
这样的方式就很好的隐藏了后台
并且,WSGI还封装了CGI的一些接口
and so on
总之就是目前的python框架多是建立在WSGI接口上的