WSGI协议
WSGI协议是描述服务器如何与客户端通信的一种协议或者规范。
要搭建一个服务器需要实现一个application(environ, start_response)这样的函数。environ:包含所有请求头信息的对象
start_response:发送响应头的对象def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/html')])
return ['hello world']
上面的函数就是遵循WSGI标准的一个HTTP处理函数,start_response()在application中只能调用一次,用来定义响应头的相关信息,如:[('Content-Type', 'text/html')]
最终返回的就是输出在浏览器中的body体。
运行WEB服务器
将上面的代码保存为app.py后,编写server.py
在Python中有内置的WEB服务器,在wsgiref模块中# 从wsgiref模块导入make_server
from wsgiref.simple_server import make_server
# 导入自己写的http处理函数
from app import application
# 创建web服务 参数分别对应:ip,端口,http处理函数
httpd = make_server('', 8088, application)
print('Server HTTP on port 8088')
# 执行监听
httpd.serve_forever()
完成后可以在命令行执行python server.py,打开浏览器访问 http://localhost:8088/,浏览器展示hello world表示成功。
如果浏览器没有任何输出。请检查一下端口是否被其他进程占用。
查看命令行是否有报错信息。
关于AssertionError: write() argument must be a bytes instance的报错,可以看我的另一篇文章:Python启动WSGI,make_server报错