Python - wsgi

文章目录


https://www.jmjc.tech/tutorial/python/55


web 编程就是对HTTP协议的应用。

我们能使用 socket 自制 web 服务器,但每次都需要自己处理协议的内容很烦琐,所以可以把 HTTP协议的东西外包给专门的HTTP服务器软件。

Apache、Nginx 等 HTTP服务器软件都是只负责处理 HTTP 的请求和响应。

python 就只是单纯的负责处理业务,在通过 wsgiPythonHTTP 关联起来。

类似的这种 “通道” 或者较叫“接口” 的还有 CGI、FastCGI

但仅仅通过 WSGI 去开发 web,还是会过于底层,于是又发展出了 框架 这种东西,例如 FlaskDjango

它们又在 WSGI 之上在抽象了一层,让 python 可以更方便的处理业务。

wsgi 接口实现起来非常简单,只是通过一个函数,这个函数有两个参数,一个是请求,另一个是响应。

def application(environ, start_response):
 pass

 # environ 是客户端的请求信息,python 处理完成之后,通过 start_response 响应反馈给 HTTP 服务器
 # ...

wsgiref

wsgiref 是 python 内置的一个简单的 遵循wsgi接口的服务器

from wsgiref.simple_server import make_server

# application 由wsgi服务器调用、函数对http请求与响应的封装、使得Python专注与HTML
# environ http 请求 (dist)
# start_response 响应 (function)
def application(environ, start_response):
 # 请求
 if environ['REQUEST_METHOD'] == 'GET' and environ['PATH_INFO'] == '/':
  # 响应
  start_response('200 OK', [('Content-Type', 'text/html')])
  return [b'<h1>hi, py!</h1>']

# 启动服务器 | 这个服务器负责与 wsgi 接口的 application 函数对接数据
httpd = make_server('127.0.0.1', 8000, application)

# 监听请求
httpd.serve_forever()

访问 - 127.0.0.1:8000

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值