Tornado—options.define()方法与options.options解读
程序员文章站
2022-03-26 12:06:39
tornado为我们提供了一个便捷的工具,tornado.options模块——全局参数定义、存储、转换。 tornado是facebook开源的非阻塞web容器,类似java的netty,tornado.options是负责解析tornado容器的全局参数的,同时也能够解析命令行传递的参数和从配置 ......
tornado为我们提供了一个便捷的工具,tornado.options模块——全局参数定义、存储、转换。
tornado是facebook开源的非阻塞web容器,类似java的netty,tornado.options是负责解析tornado容器的全局参数的,同时也能够解析命令行传递的参数和从配置文件中解析参数。
tornado.options默认是定义为单例模式的,通过tornado.options.options对象来维护全局参数,如果在线程中需要维护自己的变量,也可以使用tornado.options. optionparser对象来维护参数。tornado.options.options就是通过实例optionparser的对象来实现的,而且把define、parse_command_line、parse_config_file放到tornado.options 包中,可以直接使用,与调用tornado.options.options的方法是一致的。
tornado.options.define()是用来定义options选项变量的方法,定义的变量可以在全局的tornado.options.options中获取使用。
# -*- coding:utf-8 -*-
import tornado.web # web服务
import tornado.ioloop # i/o 时间循环
import tornado.httpserver # 新引入httpserver模块,单线程的http服务
from tornado.options import define, options
define("port", default=8066, type=int, help="run on the given port")
define("domain", default=[], type=str, help="run on the given domain", multiple=true)
class mainhandler(tornado.web.requesthandler):
def get(self):
self.write("hello world!")
app = tornado.web.application([
(r"/index", mainhandler),
])
if __name__ == "__main__":
tornado.options.parse_command_line() # 如果命令行没有传值,则使用默认值
tornado.options.parse_config_file("./config") # 引用config文件里面的值,文件内容:port=8006
print tornado.options.options.port
http_server = tornado.httpserver.httpserver(app)
http_server.listen(options.port)
# tornado.ioloop.ioloop.current().start()
tornado.ioloop.ioloop.instance().start()
上一篇: vue中的事件修饰符