在安装pydev和tornado后,在eclipse中选择File->New->pydev,输入工程名称,在此暂叫做MyServer。
工程创建成功后开始添加主文件,在eclipse中选中工程目录,右键->New->Pydev Module,在弹出的对话框中的“Name”属性框中输入文件的
名称“MyServer”,在点击确定后的对话框中选择“Module::main”。
开始添加自己的代码:
首先引入需要的包:
from tornado import httpserver
import tornado.ioloop
1,定义自己的“Application”,继承自“tornado.web.Application”:
class MyServer(tornado.web.Application):
def __init__(self):
handlers = [
//暂且不添加handlers,后续添加
]
settings = dict(gzip=True,
debug=False,)
tornado.web.Application.__init__(self,
handlers=handlers,
**settings)
2,定义启动函数:
def startServer():
http_server = httpserver.HTTPServer(MyServer())
http_server.bind(8888) //绑定到8888端口,或者其他可用端口
http_server.start(1)
tornado.ioloop.IOLoop.instance().start()
3,在main中启动服务
if __name__ == '__main__':
startServer()
此时,服务已经可以启动,但是因为没有添加handlers,还不能处理、回应请求,接下来我们添加handlers
4,选中工程目录文件,右键->New...->PydevPackage,输入包名“Handler”,或者其他名称,后续的handler相关文件都放入到这个包中;
5,在包handler中添加新的“Pydev Module”,命名为“BaseHandler.py”,在“BaseHandler.py”中添加“基Handler“的定义、实现:
import tornado.web
class BaseHandler(tornado.web.RequestHandler):
'''
处理http请求的基类:
在此做对请求参数的校验等
'''
def __init__(self,*request, **kwargs):
super(BaseHandler, self).__init__(request[0], request[1])
def get(self):
self.write('My Server is working !!!')
def post(self):
pass
现在的handler中只处理“get”,如果我们的服务还运行着,则返回客户端一个字符串;
6,在我们的启动文件中添加handler:
在“my_server.py”文件中,添加引用包
from Handler.BaseHandler import BaseHandler;
将:
handlers = [
//暂且不添加handlers,后续添加
]
修改为:
handlers = [
(r"/",BaseHandler),
]
7,启动服务
右击“my_server.py”,选择Debug as->Python Run,带“Console”中输出“pydev debugger: starting”,标示服务已经启动;
在浏览器中输入:http://127.0.0.1:8888 或者 http://localhost:8888
8,调试
在BaseHandler.py文件中的“get”函数处设置一个断点,再在浏览器中输入上述地址,看看有什么事情发生;
9,停止服务
点击“Console”工具栏中的的一个红色按钮(Terminate)停止当前启动的服务;
命令行:打开终端,输入 lsof -i :8888 查看占用8888端口的进程
输入 pgrep -lf python 查看以python启动的程序
找到对应的pid,可以用 kill -9 [pid] 将对应的进程杀掉。
至此,一个简单得web服务搭设完毕。
源工程下载目录: