WSGI
是服务器与应用程序通信的接口规范,在 PEP-3333 提出,如果一个 Web 框架基于 WSGI
规范编写,那么它就可以运行在任意支持 WSGI
规范的 Web 服务器上,httpd
、nginx
以及 Python 标准库中的 wsgiref
等 Web 服务器都支持 WSGI
规范,而 django
、flask
这些基于 WSGI
的 Web 框架也都能够运行在这些服务器上
编写应用程序
WSGI
应用程序有以下几点要求
- 需要是一个
callable
对象 - 接受两个参数,环境字典、还有一个向 Web 服务器返回状态码和响应头部的函数
- 返回值为一个可迭代对象
一个简单的例子
from wsgiref.simple_server import make_server |
测试
curl localhost:8080 |
操作环境变量
这个例子返回当前这次请求的一些环境变量
from wsgiref.simple_server import make_server |
测试
... |
启动之后通过 curl
测试,返回了我们指定的几个环境变量
curl localhost:8080 |
表单解析
如果我们需要解析表单并处理,看下面这个例子
from wsgiref.simple_server import make_server |
测试,点击提交
写不下去了
为什么不用 Web 框架呢
这样写简直 LOW 到爆,没有路由,不够安全、扩展性不够
主要还是写起来真累!
我想要这样写!
|
嗯,这些都是 Web 框架干的事,处理请求,提供路由 等
如果只是要进行 Web 开发,而不打算深入理解底层框架实现的话,用现成的框架就可以了,Python 有很多牛逼的 Web 框架,Flask
、Django
、Tornado
等,各有各的优点,随便挑选一个开始你的 Web 开发之路吧
嗯,如果你都用不惯的话,也可以自己实现一个