简单的tornado(2):
一:
# tornado的基础web框架模块
# tornado核心io循环模块,封装了linux的epoll和kqueue,是tornado高效的基础
import tornado.web
import tornado.ioloop
import tornado.httpserver
import tornado.options
# 定义参数
tornado.options.define("port", default=8000, type=int)
# 类似于django中的视图
class AAA(tornado.web.RequestHandler):
# 处理get请求
def get(self, *args, **kwargs):
# 给浏览器响应信息
self.write("aaaaaaa")
if __name__ == "__main__":
# 将命令行的参数转化进来,并保存到tornado.options.options里
tornado.options.parse_command_line()
# 实例化一个app对象
# application是tornadoweb框架的核心应用类,是与服务器对应的接口
app = tornado.web.Application([
(r"/", AAA)
])
# 先创建一个服务,再去绑定端口
httpServer = tornado.httpserver.HTTPServer(app)
# 使用变量的值
httpServer.bind(tornado.options.options.port)
# 开启的进程数
httpServer.start(3)
# IOLoop.current():返回当前线程的IOLoop实例
# IOLoop.start():启动IOLoop实例的I/O循环,同时开启监听
tornado.ioloop.IOLoop.current().start()
然后在命令行输入 :python 文件名 --port=值
二:
创建一个file文件:
port=11111
代码:
# tornado的基础web框架模块
# tornado核心io循环模块,封装了linux的epoll和kqueue,是tornado高效的基础
import tornado.web
import tornado.ioloop
import tornado.httpserver
import tornado.options
# 定义参数
tornado.options.define("port", default=8000, type=int)
# 类似于django中的视图
class AAA(tornado.web.RequestHandler):
# 处理get请求
def get(self, *args, **kwargs):
# 给浏览器响应信息
self.write("aaaaaaa")
if __name__ == "__main__":
# 将命令行的参数转化进来,并保存到tornado.options.options里
tornado.options.parse_config_file("file")
# 实例化一个app对象
# application是tornadoweb框架的核心应用类,是与服务器对应的接口
app = tornado.web.Application([
(r"/", AAA)
])
# 先创建一个服务,再去绑定端口
httpServer = tornado.httpserver.HTTPServer(app)
# 使用变量的值
httpServer.bind(tornado.options.options.port)
# 开启的进程数
httpServer.start(1)
# IOLoop.current():返回当前线程的IOLoop实例
# IOLoop.start():启动IOLoop实例的I/O循环,同时开启监听
tornado.ioloop.IOLoop.current().start()
从文件了传入参数,不能是字典形式
三:
创建一个config.py文件:
dict = {
"port": 11111,
}
代码:
# tornado的基础web框架模块
# tornado核心io循环模块,封装了linux的epoll和kqueue,是tornado高效的基础
import tornado.web
import tornado.ioloop
import tornado.httpserver
import tornado.options
# 导入参数
import config
# 类似于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(config.dict["port"])
# 开启的进程数
httpServer.start(1)
# IOLoop.current():返回当前线程的IOLoop实例
# IOLoop.start():启动IOLoop实例的I/O循环,同时开启监听
tornado.ioloop.IOLoop.current().start()
比较:
第一种:需要命令行启动,要定义参数
第二种:不需要命令行启动,要定义参数
第三种:不需要命令行启动,不需要定义参数