python wsgi 网络编程1
2014-10-14 14:36
417 查看
阅读《The Quick Python Book 2nd》
Python有很多web框架,如Zope and Plone, Django, TurboGears,web2py等等。
早期的python web框架中,关于 web应用程序 与 web服务器之间交互的标准很少。这导致了web框架的选择有限于你可用的web服务器。而 WSGI(web服务器网关)的存在就提供了一个web应用程序 与 web服务器之间的交互的标准。这使得在不同的web服务器上使用web应用和web框架变得更简单。下图是一个WSGI应用程序和web服务器交互的简单流程图:
如果你要写web服务器或web应用框架,你就需要了解WSGI的细节信息。其它情况下,知道一个WSGI应用程序的创建是很有用的。标准库中在wsgiref模块中包括WSGI服务器的参考实现。
创建一个基本的WSGI应用程序可通过使用wsgiref.simple。很简单,当你创建好以后,你唯一需要传递给server的就是: 一个可以调用的应用程序对象(它从server上接收2个参数:一个环境变量的字典;一个可调用的对象,它能接收HTTP status和 headers for the response)。
a basic "Hello World" WSGI application
# message_wall01.py
from wsgiref.simple_server import make_server
def message_wall_app(environ, start_response):
status=b'200 OK'
headers=[(b'Content-type', b'text/html; charset=utf-8')]
start_response(status,headers)
return ["<h1>Message Wall</h1>"]
httpd=make_server('', 8000, message_wall_app)
print("Serving on port 8000...")
httpd.serve_forever()
运行这个脚本,然后打开浏览器,输入 http://127.0.0.1:8000,就能看到“Hello world”
由于我是在另一台物理机上起的虚拟机上运行的程序。要想在我的笔记本上使用浏览器看结果,必须先使用plink进行端口的粘连。这里就不详述了。
创建服务器:make_server,参数包括:server地址,端口,应用对象。
启动服务器: serve_forever 监听所有活动的interfaces ;handle_request 仅服务一个请求然后退出。
创建appplication object:hello_world_app,参数包括:environ(CGI风格的变量字典,来自server) 和 start_response(callable object,用于发送HTTP status和headers of response)。
Python有很多web框架,如Zope and Plone, Django, TurboGears,web2py等等。
早期的python web框架中,关于 web应用程序 与 web服务器之间交互的标准很少。这导致了web框架的选择有限于你可用的web服务器。而 WSGI(web服务器网关)的存在就提供了一个web应用程序 与 web服务器之间的交互的标准。这使得在不同的web服务器上使用web应用和web框架变得更简单。下图是一个WSGI应用程序和web服务器交互的简单流程图:
如果你要写web服务器或web应用框架,你就需要了解WSGI的细节信息。其它情况下,知道一个WSGI应用程序的创建是很有用的。标准库中在wsgiref模块中包括WSGI服务器的参考实现。
创建一个基本的WSGI应用程序可通过使用wsgiref.simple。很简单,当你创建好以后,你唯一需要传递给server的就是: 一个可以调用的应用程序对象(它从server上接收2个参数:一个环境变量的字典;一个可调用的对象,它能接收HTTP status和 headers for the response)。
a basic "Hello World" WSGI application
# message_wall01.py
from wsgiref.simple_server import make_server
def message_wall_app(environ, start_response):
status=b'200 OK'
headers=[(b'Content-type', b'text/html; charset=utf-8')]
start_response(status,headers)
return ["<h1>Message Wall</h1>"]
httpd=make_server('', 8000, message_wall_app)
print("Serving on port 8000...")
httpd.serve_forever()
运行这个脚本,然后打开浏览器,输入 http://127.0.0.1:8000,就能看到“Hello world”
由于我是在另一台物理机上起的虚拟机上运行的程序。要想在我的笔记本上使用浏览器看结果,必须先使用plink进行端口的粘连。这里就不详述了。
创建服务器:make_server,参数包括:server地址,端口,应用对象。
启动服务器: serve_forever 监听所有活动的interfaces ;handle_request 仅服务一个请求然后退出。
创建appplication object:hello_world_app,参数包括:environ(CGI风格的变量字典,来自server) 和 start_response(callable object,用于发送HTTP status和headers of response)。
相关文章推荐
- python wsgi 网络编程3 出错
- 关于python下网络编程
- Python 网络编程起步(Socket发送消息)
- Python网络编程之Sockets简介
- python网络编程及socket模块简析
- Python网络编程 Http
- Python网络编程之medusa
- Python PycURL 网络编程
- Python的网络编程
- Python网络编程 HTML解析
- Python 网络编程起步(Socket发送消息)
- Python的网络编程(三)
- Python的网络编程(二)
- Python PycURL 网络编程
- Python天天美味(27) - 网络编程起步(Socket发送消息)
- Python的网络编程(一)
- python天天进步(5)--网络编程之数据传输UDP
- Python网络编程之SocketServer
- Python网络编程-入门篇
- Python网络编程