`

tornado: options.py

 
阅读更多

问题:

1.Options.py在tornado里面起什么作用?

2.这个模块中包含什么方法?

3.各个方法有什么作用?

4.使用此模块的典型场景

5.使用各个函数的典型场景

 

边看边答:

1.呃,基本上现在我的理解就是:Options提供一个透明,简单的方法,使得一个module可以很容易从tornado统一的接口中获得所需要的外来参数,例如:

  • 从命令行获得
    #!/ur/bin/env python
    '''Test.py'''
    
    from tornado.options import define, options
    
    define("param1", default="it's parameter 1", help="value for param 1")
    define("param2", default="it's parameter 2", help="value for param 2")
    
    options.parse_command_line()
    
    if __name__ == "__main__":
        print options.param1
        print options.param2
    
    ### End of Test.py ####
    
    python Test.py
    >>>it's parameter 1
    >>>it's parameter 2
    
    python Test.py --param1="Hello world"
    >>>Hello world
    >>>it's parameter 2
    
    python Test.py --param1="Hello" --param2="world"
    >>>Hello
    >>>world
     
  • 从配置文件获得
    嗯,这个例子就不写了,和上面不一样的地方就是使用
    tornado.options.parse_config_file(path_to_config_file)

嗯,我知道你们会问,其实是因为我自己不知道,加入从命令行给出的参数模块里没有通过define定义过怎么办?其实是这样,对于这种情况,tornado会抛出异常。。。

 

2. 呃看关键的Module暴露出来的几个函数吧, 不过在此之前,需要先说这里面包含的几个重要的类

类一: _Options,字典类,以文件名为键,以等一下要说的另外一个类的集合作为值,也就是说,一个filename对应一票Option,所以从另外一个角度说,_Options这个映射类的实例是一个顶层的全局变量

类二: _Option,嗯,没啥好说的,在类内部定义了一下用来把参数变成Python类型实例的parser而已

 

Module内关键的几个函数

  • define:
    正如上面例子里面看到的,定义了当前module大概可能也许需要的从外部获得的参数,在module内部使用这些个参数的时候既然使用了tornado,那么可以使用tornado.options.name_of_parameter来获得参数的值。然后这个时候Options这个全局变量就会根据当前Callee的文件名以及param的名字去找了。。
  • parse_command_line:
  • parse_config_file

需要注意的是,如果只define了没有调用任何一个parse,那基本上是无用的。。。。

 

 

在Options.py这个module里面tornado顺便定义了几个可用参数。。

define("help", type=bool, help="show this help information")
define("logging", default="info",
       help=("Set the Python log level. If 'none', tornado won't touch the "
             "logging configuration."),
       metavar="debug|info|warning|error|none")
define("log_to_stderr", type=bool, default=None,
       help=("Send log output to stderr (colorized if possible). "
             "By default use stderr if --log_file_prefix is not set and "
             "no other logging is configured."))
define("log_file_prefix", type=str, default=None, metavar="PATH",
       help=("Path prefix for log files. "
             "Note that if you are running multiple tornado processes, "
             "log_file_prefix must be different for each of them (e.g. "
             "include the port number)"))
define("log_file_max_size", type=int, default=100 * 1000 * 1000,
       help="max size of log files before rollover")
define("log_file_num_backups", type=int, default=10,
       help="number of log files to keep")

 

 

 

 

分享到:
评论

相关推荐

    tornado-5.0.2.tar.gz及tornado-4.1.tar.gz及tornado-1.2.1.tar.gz

    Tornado是一款开源的Python Web框架和异步网络库,它由Facebook的FriendFeed团队开发,并在2009年开源。Tornado以其高并发、低延迟的特性在Web开发领域中受到广泛的关注,尤其适用于实时Web服务,如聊天、推送通知、...

    tornado官方翻译文档

    14. 开发工具:tornado.autoreload、tornado.log、tornado.options等模块提供了实用的开发工具,例如自动检测代码改动、日志支持、命令行工具等。 15. 异步回调异常处理:tornado.stack_context模块提供了在异步回调...

    80h_tornado:www.anger6.com网站原始码-网站

    "80h_tornado-master"很可能按照标准的Python项目结构组织,包括`main.py`或`app.py`作为入口文件,`settings.py`存储配置,`models.py`定义数据模型,`views.py`处理视图逻辑,以及`static`和`templates`目录分别...

    PyPI 官网下载 | tornado-1.0.tar.gz

    class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") def make_app(): return tornado.web.Application([ (r"/", MainHandler), ]) if __name__ == "__main__": app...

    Tornado教程.pdf

    class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") def make_app(): return tornado.web.Application([ (r"/", MainHandler), ]) if __name__ == "__main__": app...

    EJTAG Linux32/64和Windows版本

    EJTAG Debrick Utility v3.0 RC1 Tornado-MOD ============================================== ABOUT: This program reads/writes flash memory on the WRT54G/GS and compatible routers via EJTAG using ...

    tornado_code.rar

    在Tornado中,路由是通过`tornado.web.URLSpec`定义的,它将URL模式映射到特定的处理器类(Handler)实例。通过这种方式,当用户发起一个HTTP请求时,Tornado会根据URL来查找并执行相应的处理器方法。例如,我们...

    PyPI 官网下载 | pytest-tornado-0.4.2.tar.gz

    PyPI官网下载的资源“pytest-tornado-0.4.2.tar.gz”就是这样一个Python库,它是一个集成到pytest测试框架中的扩展,专门针对Tornado异步I/O库的测试。 pytest是一个强大的测试框架,它提供了丰富的插件系统,使得...

    关于服务器——安装配置tornado

    class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") application = tornado.web.Application([ (r"/", MainHandler), ]) if __name__ == "__main__": application....

    Python库 | tornado-6.0.2.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:tornado-6.0.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    django-tornado:如何在 Tornado 上运行 django 的示例

    设置您无需更改任何内容即可使用您自己的 Django 项目运行它,但是run_tornado.py这一行: os . environ [ 'DJANGO_SETTINGS_MODULE' ] = 'demosite.settings' # TODO: edit this DJANGO_SETTINGS_MODULE应该指向 ...

    Python库 | elasticsearch_tornado-2.0.7.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:elasticsearch_tornado-2.0.7.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Tornado v1.0.8.0

    Tornado v1.0.8.0是一个分享象棋引擎的

    python用装饰器自动注册Tornado路由详解.pdf

    在第一个版本中,我们创建了一个名为`RouterConfig`的类,它在初始化时会实例化一个`tornado.web.Application`对象。这个`Application`对象是Tornado中负责管理路由和处理器的核心组件。我们定义了一个装饰器`@app....

    tornado 身份验证设置.docx

    在Python的Web开发框架...同时,结合`@tornado.web.authenticated`装饰器,可以进一步控制哪些路由需要用户登录后才能访问。为了增强安全性,还需要配合其他措施,如防止XSS和CSRF攻击,以及定期更换`cookie_secret`。

    tornado-2.2.1.tar.gz

    Tornado是一个著名的Python Web框架和异步网络库,由FriendFeed团队开发,后来被Facebook收购并开源。在本文中,我们将深入探讨Tornado 2.2.1版本,这是一个相对早期但仍然在某些场景下有需求的版本。 首先,...

    Python库 | jinja_tornado-0.1.3.tar.gz

    《Python库:Jinja与Tornado的协同使用详解》 在Python的世界里,Jinja和Tornado是两个非常重要的库,它们分别在模板渲染和Web开发领域有着广泛的应用。"jinja_tornado-0.1.3.tar.gz"这个资源正是将两者结合,提供...

    PyPI 官网下载 | dp-tornado-0.3.9.tar.gz

    《PyPI官网下载 dp-tornado-0.3.9.tar.gz 深度解析》 在Python的世界里,PyPI(Python Package Index)是官方的软件仓库,它为开发者提供了无数的开源模块和库,方便他们构建自己的项目。本文将深入探讨PyPI上下载...

    tornado-5.1.1.tar.gz

    tornado-5.1.1.tar.gz

    tornado-4.2.tar.gz

    tornado-4.2.tar.gz

Global site tag (gtag.js) - Google Analytics