Tornado.options源码解读
来源:互联网 发布:网盘管理系统 源码 编辑:程序博客网 时间:2024/06/16 23:55
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)
- Tornado.options源码解读
- jquery插件select2源码解读(三) options
- Tornado 源码
- Tornado框架03-options和日志
- Tornado源码分析
- tornado源码分析
- TORNADO源码分析
- tornado源码阅读--开篇
- tornado源码分析-Application
- Tornado源码阅读
- tornado源码阅读
- Tornado源码阅读总览
- tornado IOLoop源码阅读
- Tornado: 2. 源码分析 (3)
- tornado源码阅读--Application篇
- tornado源码阅读--HTTPServer篇
- tornado源码阅读--ioloop篇
- Tornado源码分析之IOLoop
- 极光推送在ionic项目的应用
- Solr(二)
- Oracle db 参数文件笔记
- 继承,封装,多态
- Search in Rotated Sorted Array
- Tornado.options源码解读
- 8VC Venture Cup 2016 - Elimination Round-A. Robot Sequence(模拟)
- muduo库的学习4---loop的基本设计---EventLoop细节
- TortoiseGit在Windows下的安装和使用
- poj 3368(RMQ问题)
- (七)立体标定与立体校正 【计算机视觉学习笔记--双目视觉几何框架系列】
- Demo5:简单登录界面
- 005_Http之request获取客户端信息01
- 如何判断android activity是否运行