Python每天五分钟-搭建简单的WEB服务器

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报错

 

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注