Tornado-options全局参数简单实例

使用参数的方法有两种:

1->tornado.options.options.parse_command_line()

2->tornado.options.options.parse_config_file(path)

使用方法:

1->定义全局变量 tornado.options.define()

2->定义接受函数 tornado.options.options.parse_command_line()或者tornado.options.options.parse_config_file(path)

3->取值tornado.options.options.xx  注:xx为define中定义的参数名称

第一种方法:

import tornado.ioloop
import tornado.web
import tornado.httpserver
import tornado.options


class IndexHandler(tornado.web.RequestHandler):
    def data_received(self, chunk):
        pass

    def get(self):
        self.write("Welcome using tornado")


def make_app():
    return tornado.web.Application([
        (r"/", IndexHandler),
    ])

# 1定义全局变量
tornado.options.define("port", default=None, type=int)
tornado.options.define("list", default=[], multiple=True)

if __name__ == "__main__":
    # 2定义接受函数
    tornado.options.options.parse_command_line()
    # 3获取list值 
    print("list=", tornado.options.options.list)
    app = make_app()
    # 3获取port值
    app.listen(tornado.options.options.port)
    tornado.ioloop.IOLoop.current().start()

第二种方法:

1、需要新建一个普通文件(不是.py文件),取名为config;

内容如图:

2、使用tornado.options.options.parse_config_file("config")替换掉tornado.options.options.parse_command_line()方法即可

import tornado.ioloop
import tornado.web
import tornado.httpserver
import tornado.options


class IndexHandler(tornado.web.RequestHandler):
    def data_received(self, chunk):
        pass

    def get(self):
        self.write("Welcome using tornado")


def make_app():
    return tornado.web.Application([
        (r"/", IndexHandler),
    ])


tornado.options.define("port", default=None, type=int)
tornado.options.define("list", default=[], multiple=True)

if __name__ == "__main__":
    # tornado.options.options.parse_command_line()
    tornado.options.options.parse_config_file("config")
    print("list=", tornado.options.options.list)
    app = make_app()
    app.listen(tornado.options.options.port)
    tornado.ioloop.IOLoop.current().start()

重点补充:

也可以使用配置文件的方法。

1、添加名为config的py文件

2、config.py文件中添加参数字典,如图:

3、引入文件,无需定义全局参数,无需接受函数,直接从config中获取,如下代码:

import tornado.ioloop
import tornado.web
import tornado.httpserver
import config #引入config.py文件



class IndexHandler(tornado.web.RequestHandler):
    def data_received(self, chunk):
        pass

    def get(self):
        self.write("Welcome using tornado")


def make_app():
    return tornado.web.Application([
        (r"/", IndexHandler),
    ])



if __name__ == "__main__": 
    # 获取config中的key   
    print("list=", config.options["list"])
    app = make_app(config.options["port])
    app.listen(tornado.options.options.port)
    tornado.ioloop.IOLoop.current().start()

猜你喜欢

转载自blog.csdn.net/hhyihquk1/article/details/82767161