# tornado的基础web框架模块
# tornado核心io循环模块,封装了linux的epoll和kqueue,是tornado高效的基础
import tornado.web
import tornado.ioloo
# 类似于django中的视图
class AAA(tornado.web.RequestHandler):
# 处理get请求
def get(self, *args, **kwargs):
# 给浏览器响应信息
self.write("aaaaaaa")
if __name__ == "__main__":
# 实例化一个app对象
# application是tornadoweb框架的核心应用类,是与服务器对应的接口
app = tornado.web.Application([
(r"/", AAA)
])
#app里面的listen会创建一个服务,在绑定对应的端口
app.listen(11111)
# IOLoop.current():返回当前线程的IOLoop实例
# IOLoop.start():启动IOLoop实例的I/O循环,同时开启监听
tornado.ioloop.IOLoop.current().start()
# tornado的基础web框架模块
# tornado核心io循环模块,封装了linux的epoll和kqueue,是tornado高效的基础
import tornado.web
import tornado.ioloop
import tornado.httpserver
# 类似于django中的视图
class AAA(tornado.web.RequestHandler):
# 处理get请求
def get(self, *args, **kwargs):
# 给浏览器响应信息
self.write("aaaaaaa")
if __name__ == "__main__":
# 实例化一个app对象
# application是tornadoweb框架的核心应用类,是与服务器对应的接口
app = tornado.web.Application([
(r"/", AAA)
])
# 先创建一个服务,再去绑定端口
httpServer = tornado.httpserver.HTTPServer(app)
httpServer.listen(11111)
# IOLoop.current():返回当前线程的IOLoop实例
# IOLoop.start():启动IOLoop实例的I/O循环,同时开启监听
tornado.ioloop.IOLoop.current().start()
# tornado的基础web框架模块
# tornado核心io循环模块,封装了linux的epoll和kqueue,是tornado高效的基础
import tornado.web
import tornado.ioloop
import tornado.httpserver
# 类似于django中的视图
class AAA(tornado.web.RequestHandler):
# 处理get请求
def get(self, *args, **kwargs):
# 给浏览器响应信息
self.write("aaaaaaa")
if __name__ == "__main__":
# 实例化一个app对象
# application是tornadoweb框架的核心应用类,是与服务器对应的接口
app = tornado.web.Application([
(r"/", AAA)
])
# 先创建一个服务,再去绑定端口
httpServer = tornado.httpserver.HTTPServer(app)
httpServer.bind(11111)
# 开启的进程数
httpServer.start(3)
# IOLoop.current():返回当前线程的IOLoop实例
# IOLoop.start():启动IOLoop实例的I/O循环,同时开启监听
tornado.ioloop.IOLoop.current().start()
一和二都是开启一个进程,但是一里面用的是app.listen,用的app里面的listen,他会自动创建一个服务然后监听对应的端口。而二里面是创建一个服务,再用这个服务里的listen去监听对应的端口。
二和三,都是先创建一个服务,再去监听端口,但是二是单进程,三是多进程。
这三种缺点:把端口等写死了。