基于python的web server有不少,好比:django、web.py、tornado、fastcgi等。通过一番比较我选择使用tornado,使用tornado的缘由有以下几个:一、tornado是轻量级的web server,二、异步I/O处理链接请求,三、tornado是facebook开源项目之一。因为个人raspberry pi使用的是raspbian操做系统,而raspbian操做系统源上有python-tornado和python3-tornado二进制包,因此直接使用命令$sudo apt-get install python3-tornado python-tornado完成安装。完成安装后使用tornado官方网站上提供的测试代码来测试web服务器是否好用。测试代码以下:python
#!/usr/bin/env python3
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self, name):
self.write("Hello, world")
application = tornado.web.Application([
(r"/(.*)", MainHandler),
])
if __name__ == "__main__":
application.listen(9090)
tornado.ioloop.IOLoop.instance().start()web
其中web服务器监听端口是9090,全部的web请求由MainHandler类进行处理。在MainHandler类中包含一个get()方法,在该方法中向发出请求的web客户端输出"Hello,world"字符串。django
在raspberry pi上运行该python脚本,以后经过命令netstat查看当前系统的监听端口,发现9090端口被监听。浏览器
pi@raspberrypi :~/test$ netstat -ltn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:9090 0.0.0.0:* LISTEN
服务器
此时,在PC机上使用浏览器访问raspberry pi上的9090端口,就能够获得"Hello,world"字符串显示在浏览器页面中。app