运行WSGI服务
我们先编写 hello.py ,实现Web应用程序的WSGI处理函数:
# hello.py
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return [b'<h1>Hello, web!</h1>']
然后,再编写一个 server.py ,负责启动WSGI服务器,加载 application() 函数:
# server.py
# 从wsgiref模块导入:
from wsgiref.simple_server import make_server
# 导入我们自己编写的application函数:
from hello import application
# 创建一个服务器,IP地址为空,端口是8000,处理函数是application:
httpd = make_server('', 8000, application)
print('Serving HTTP on port 8000…')
# 开始监听HTTP请求:
httpd.serve_forever()
确保以上两个文件在同一个目录下,然后在命令行输入 python server.py 来启动WSGI服务器:
注意:如果 8000 端口已被其他程序占用,启动将失败,请修改成其他端口。
启动成功后,打开浏览器,输入 http://localhost:8000/ ,就可以看到结果了:
在命令行可以看到wsgiref打印的log信息:
按 Ctrl+C 终止服务器。
如果你觉得这个Web应用太简单了,可以稍微改造一下,从 environ 里读取 PATH_INFO ,这样可以显示更加动态的内容:
# hello.py
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
body = '<h1>Hello, %s!</h1>' % (environ['PATH_INFO'][1:] or 'web')
return [body.encode('utf-8')]
你可以在地址栏输入用户名作为URL的一部分,将返回 Hello, xxx! :
是不是有点Web App的感觉了?