前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python每天五分钟-搭建简单的WEB服务器

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

作者头像
用户2475223
发布2019-12-17 15:56:02
1.1K0
发布2019-12-17 15:56:02
举报
文章被收录于专栏:codersamcodersam

WSGI协议

WSGI协议是描述服务器如何与客户端通信的一种协议或者规范。

要搭建一个服务器需要实现一个application(environ, start_response)这样的函数。

  • environ:包含所有请求头信息的对象
  • start_response:发送响应头的对象
代码语言:javascript
复制
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模块中

代码语言:javascript
复制
# 从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报错

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019年5月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • WSGI协议
  • 运行WEB服务器
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档