Flask--WSGI及wsgiref简单实现

WSGI简介

  • WSGI
  • Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)
  • 是为Python语言定义的Web服务器(如nginx,uWSGI等服务器)和Web应用程序(如用Django、Flask框架写的程序)之间的一种简单而通用的接口,描述两者通信的一种规范/协议,作用就是在协议之间进行转换
  • 不是服务器、python模块、框架、API或者任何软件
  • 基于现存的[CGI]标准而设计的,但WSGI所在层的位置低于CGI,具有很强的伸缩性且能运行于多线程或多进程的环境下
  • uWSGI
  • 一个Web服务器,实现了WSGI协议、uwsgi、http等协议
  • 一般与nginx一起使用。nginx优秀的静态内容处理能力处理静态内容,并将动态内容转发给uWSGI,达到快速的客户端响应
  • Client<—HTTP协议—>nginx<—uwsgi协议—>uWSGI<—WSGI—>Flask等框架编写的应用程序
  • uwsgi
  • 一个uWSGI服务器自有的协议,它用于定义传输信息的类型,每一个uwsgi packet前4byte为传输信息类型描述,用于与nginx等代理服务器通信
  • 与WSGI相比是两样东西
  • 参考文档
  • https://blog.csdn.net/m0_37438418/article/details/80631048

wsgiref模块

标准的pythonWSGI模块,完全符合WSGI标准,但是不考虑任何运行效率,仅供开发和测试使用。

from wsgiref.simple_server import make_server, demo_app


# 对http请求与响应的封装,由wsgi服务器调用
def app(environ, start_response):
    # """
    # environ: 是客户端的请求信息
    # start_response: 响应反馈给 HTTP 服务器
    # """
    # 请求处理
    if environ['REQUEST_METHOD'] == 'GET' and environ['PATH_INFO'] == '/':
        #响应
        start_response("200 OK", [('Content-Type', 'text/plain; charset=utf-8')])
        return ['hello'.encode("utf-8")]


if __name__ == '__main__':
    # 监听请求
    server = make_server('127.0.0.1', 6003, app)
    # 监听请求
    server.serve_forever()
  • wsgiref库的坑

https://blog.csdn.net/ttphoon/article/details/90035639

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值