为wsgiref实现的WSGI服务器编写处理函数
2017-02-24 00:00
381 查看
简单介绍:
1. 浏览器发送一个HTTP请求
2. 服务器收到请求,生成HTML文档
3. 服务器把HTML文档作为HTTP响应的BODY发送给浏览器
4. 浏览器收到HTTP响应,从HTTP BODY取出HTML文档并显示
说明: 如上即Web应用本质,最简单的就是把HTML文件保存好,利用HTTP服务器软件,接收用户请求,从文件读取HTML并返回,常见的静态服务器即如此,而要实现动态生成HTML,服务器软件不可能为我们生成,但服务器软件基本都支持了WSGI(WEB网关接口)协议,使得我们专心用PY编写WEB业务,而不需要关心接受请求/处理请求/发送请求的底层实现
接口规范:
说明: 接口定义非常简单,只需要一个接受两个参数(environ为包含HTTP请求信息的dict,start_response为一个回调函数主要用于发送响应头部信息,接受两个参数第一个是响应码,第二个是头部组成的元组列表,可以包含多个头部信息,但是只能调用一次),return返回的是body体
注意: 接口定义了但是只有被调用才有意义,有很多符合规范WSGI规范的服务器,PY为我们提供了一个符合规范但专用于测试的WSGI服务器wsgiref,可以快速方便测试
快速安装:
pip install --upgrade wsgiref
完整代码:
说明: 无论多复杂的HTTP程序,入口都是WSGI处理函数,HTTP请求的所有输入信息都可以通过environ环境变量获取,HTTP响应都可以通过start_response()加上函数返回值作为Body,但是复杂的WEB应用程序,光靠WSGI函数处理还是太底层,所以涌现了许多出色的WEB框架来简化WEB开发.
登录乐搏学院官网http://www.learnbo.com/
或关注我们的官方微博微信,还有更多惊喜哦~
本文出自 “满满李 - 运维开发之路” 博客,请务必保留此出处http://xmdevops.blog.51cto.com/11144840/1862566
1. 浏览器发送一个HTTP请求
2. 服务器收到请求,生成HTML文档
3. 服务器把HTML文档作为HTTP响应的BODY发送给浏览器
4. 浏览器收到HTTP响应,从HTTP BODY取出HTML文档并显示
说明: 如上即Web应用本质,最简单的就是把HTML文件保存好,利用HTTP服务器软件,接收用户请求,从文件读取HTML并返回,常见的静态服务器即如此,而要实现动态生成HTML,服务器软件不可能为我们生成,但服务器软件基本都支持了WSGI(WEB网关接口)协议,使得我们专心用PY编写WEB业务,而不需要关心接受请求/处理请求/发送请求的底层实现
接口规范:
1 2 3 | def app(environ,start_response): start_response( '200 OK' ,[( 'Content-Type' , 'text/html' )]) return '<h1>Hello,web!</h1>' |
注意: 接口定义了但是只有被调用才有意义,有很多符合规范WSGI规范的服务器,PY为我们提供了一个符合规范但专用于测试的WSGI服务器wsgiref,可以快速方便测试
快速安装:
pip install --upgrade wsgiref
完整代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #!/usr/bin/env python # -*- coding: utf-8 -*- """ # # Authors: limanman # OsChina: http://xmdevops.blog.51cto.com/[/code]# Purpose:#"""# 说明: 导入公共模块fromwsgiref.simple_serverimportmake_server# 说明: 导入其它模块defapp(environ,start_response):start_response('200 OK',[('Content-Type','text/html')])return'<h1>Hello Word!</h1>'if__name__=='__main__':host=''port 3ff0=8080http=make_server(host,port,app)'Serving httpon port %s'%(port,)http.serve_forever() |
登录乐搏学院官网http://www.learnbo.com/
或关注我们的官方微博微信,还有更多惊喜哦~
本文出自 “满满李 - 运维开发之路” 博客,请务必保留此出处http://xmdevops.blog.51cto.com/11144840/1862566
相关文章推荐
- 基础入门_Python-模块和包.为wsgiref实现的WSGI服务器编写处理函数?
- 0805编写一个程序,实现同一个信号处理函数对多个信号的处理
- (用指针方法处理)有n个整数,使前面各数顺序向后移m个位置,最后m个数变成最前面m个数。编写一个函数实现上述功能,在主函数中输入n个整数,并输出调整后的n个数
- 实现c++,java,lua 在c++编写后需要在 pkg 文件中添加新的函数 然后批处理下生成GamePlatformToLua
- 使用Python WSGI编写Web服务器前端,并利用Boost.Python在同一进程内连接到C++服务后端实现
- 高性能图像处理服务器的实现(四)数据库类的编写
- opencv3中图像灰度化处理(手动编写处理函数实现)
- 自己实现 java中 Convert.toDouble(String str)处理函数
- Linux 多线程应用中如何编写安全的信号处理函数
- asp 实现显示所有的服务器变量值的函数
- C字符串处理函数的实现
- 托盘程序的实现(delphi的消息处理函数)
- C# 使用重载消息处理函数的方式,实现没有标题栏的窗体的拖动。
- 巧用boost库实现字符串映射消息处理函数
- 编写大容量和健壮的服务器系列—处理IOCP连接关闭
- Linux 多线程应用中编写安全的信号处理函数
- 利用事件委托实现用户控件中的行为触发所在页面的处理函数
- c语言对时间的处理函数和计时的实现
- 常见字符串处理函数的C实现
- 编写大容量和健壮的服务器系列—处理IOCP连接关闭