学过一些python网络编程的知识,对socket编程,https协议,以及web框架(flask)有一定的了解,所以想探究一下,TensorFlow的可视化工具TensorBoard是怎么搭建web服务的。
查看TensorBoard源码,从两个源码文件入手,分别是:
-
program.py 这里就是设置了一些开始web服务的参数,例如端口(port):6006等
-
http_util.py 这里就用到了搭建web服务的werkzeug工具包
首先,先向大家介绍一下什么是 werkzeug,Werkzeug是一个WSGI工具包,他可以作为一个Web框架的底层库。这里稍微说一下, werkzeug 不是一个web服务器,也不是一个web框架,而是一个工具包,官方的介绍说是一个 WSGI 工具包,它可以作为一个 Web 框架的底层库,因为它封装好了很多 Web 框架的东西,例如 Request,Response 等等。
例如我最常用的 Flask 框架就是一 Werkzeug 为基础开发的,这也是我要解析一下 Werkzeug 底层的原因,因为我想知道 Flask 的实现逻辑以及底层控制。这篇文章没有涉及到 Flask 的相关内容,只是以 Werkzeug 创建一个简单的 Web 应用,然后以这个 Web 应用为例剖析请求的处理以及响应的产生过程。
安装 werkzeug
直接 pip install Werkzeug