运行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服务器:

    运行WSGI服务 - 图1

    注意:如果 8000 端口已被其他程序占用,启动将失败,请修改成其他端口。

    启动成功后,打开浏览器,输入 http://localhost:8000/ ,就可以看到结果了:

    运行WSGI服务 - 图2

    在命令行可以看到wsgiref打印的log信息:

    运行WSGI服务 - 图3

    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!

    运行WSGI服务 - 图4

    是不是有点Web App的感觉了?