设为首页 加入收藏

TOP

Python Web开发中的WSGI协议简介(二)
2019-08-04 00:11:21 】 浏览:98
Tags:Python Web 开发 WSGI 协议 简介
plication的调用。Nginx上一般是用proxy的方式,用Nginx的协议将请求封装好,发送给应用服务器,比如uWSGI,uWSGI会实现WSGI的服务端、进程管理以及对application的调用。

uWSGI与Gunicorn的比较,由链接可知: 


WSGI除了server和application两个角色外,还有middleware中间件,middleware运行在server和application中间,同时具备server和application的角色,对于server来说,它是一个application,对于application来说,它是一个server:


可以看出,Latinator调用foo_app充当server角色,然后实例被run_with_cgi调用充当application角色。


  - uwsgi:与WSGI一样是一种通信协议,是uWSGI服务器的独占协议,据说该协议是fastcgi协议的10倍快。


  - uWSGI:是一个web server,实现了WSGI协议、uwsgi协议、http协议等。


每个Django项目中都有个wsgi.py文件,作为application是这样实现的:


源码:


WSGIHandler:


application是一个定义了__call__方法的WSGIHandler类实例,首先加载中间件,然后根据environ生成请求request,根据请求生成响应response,status和response_headers由start_response处理,然后返回响应body。

Django也自带了WSGI server,当然性能不够好,一般用于测试用途,运行runserver命令时,Django可以起一个本地WSGI server,django/core/servers/basehttp.py文件:


实现的WSGIServer,继承自wsgiref:


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Redis中的LFU算法 下一篇Python装饰器与闭包

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目