Tornado.options源码解读

Tornado.options源码解读

tornado是facebook开源的非阻塞web容器,类似java的netty,tornado.options是负责解析tornado容器的全局参数的,同时也能够解析命令行传递的参数和从配置文件中解析参数。使用步骤如下:

1.  源码中的示例代码,定义全局变量:

from tornado.options import define, options
define("mysql_host", default="127.0.0.1:3306", help="Main user DB")
define("memcache_hosts", default="127.0.0.1:11011", multiple=True,
       help="Main user memcache servers")
def connect():
    db = database.Connection(options.mysql_host)
    ...

 

2.  在模块的main函数中解析命令行参数或者配置文件

Your ``main()`` method can parse the command line or parse a config file with
either::
    tornado.options.parse_command_line()
    # or
    tornado.options.parse_config_file("/etc/server.conf")

 

命令行参数格式:--myoption=myvalue

配置文件可以是python文件,参数格式为:

myoption = "myvalue"
myotheroption = "myothervalue"

 

3.  Tornado.options默认是定义为单例模式的,通过tornado.options.options对象来维护全局参数,如果在线程中需要维护自己的变量,也可以使用tornado.options. OptionParser对象来维护参数。tornado.options.options就是通过实例OptionParser的对象来实现的,而且把define、parse_command_line、parse_config_file放到tornado.options 包中,可以直接使用,与调用tornado.options.options的方法是一致的。代码如下:

options = OptionParser()
"""Global options object.
All defined options are available as attributes on this object.
"""
def
define(name, default=None, type=None, help=None, metavar=None,
          
multiple=False, group=None, callback=None):
    """Defines an option in the global namespace.
    See `OptionParser.define`.
    """
   
return options.define(name, default=default, type=type, help=help,
                         
metavar=metavar, multiple=multiple, group=group,
                         
callback=callback)
def parse_command_line(args=None, final=True):
    """Parses global options from the command line.
    See `OptionParser.parse_command_line`.
    """
   
return options.parse_command_line(args, final=final)
def parse_config_file(path, final=True):
    """Parses global options from a config file.
    See `OptionParser.parse_config_file`.
    """
   
return options.parse_config_file(path, final=final)

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

O溺水的鱼0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值