问题:
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是一款开源的Python Web框架和异步网络库,它由Facebook的FriendFeed团队开发,并在2009年开源。Tornado以其高并发、低延迟的特性在Web开发领域中受到广泛的关注,尤其适用于实时Web服务,如聊天、推送通知、...
14. 开发工具:tornado.autoreload、tornado.log、tornado.options等模块提供了实用的开发工具,例如自动检测代码改动、日志支持、命令行工具等。 15. 异步回调异常处理:tornado.stack_context模块提供了在异步回调...
"80h_tornado-master"很可能按照标准的Python项目结构组织,包括`main.py`或`app.py`作为入口文件,`settings.py`存储配置,`models.py`定义数据模型,`views.py`处理视图逻辑,以及`static`和`templates`目录分别...
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...
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 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中,路由是通过`tornado.web.URLSpec`定义的,它将URL模式映射到特定的处理器类(Handler)实例。通过这种方式,当用户发起一个HTTP请求时,Tornado会根据URL来查找并执行相应的处理器方法。例如,我们...
PyPI官网下载的资源“pytest-tornado-0.4.2.tar.gz”就是这样一个Python库,它是一个集成到pytest测试框架中的扩展,专门针对Tornado异步I/O库的测试。 pytest是一个强大的测试框架,它提供了丰富的插件系统,使得...
class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") application = tornado.web.Application([ (r"/", MainHandler), ]) if __name__ == "__main__": application....
资源分类:Python库 所属语言:Python 资源全名:tornado-6.0.2.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
设置您无需更改任何内容即可使用您自己的 Django 项目运行它,但是run_tornado.py这一行: os . environ [ 'DJANGO_SETTINGS_MODULE' ] = 'demosite.settings' # TODO: edit this DJANGO_SETTINGS_MODULE应该指向 ...
资源分类:Python库 所属语言:Python 资源全名:elasticsearch_tornado-2.0.7.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
Tornado v1.0.8.0是一个分享象棋引擎的
在第一个版本中,我们创建了一个名为`RouterConfig`的类,它在初始化时会实例化一个`tornado.web.Application`对象。这个`Application`对象是Tornado中负责管理路由和处理器的核心组件。我们定义了一个装饰器`@app....
在Python的Web开发框架...同时,结合`@tornado.web.authenticated`装饰器,可以进一步控制哪些路由需要用户登录后才能访问。为了增强安全性,还需要配合其他措施,如防止XSS和CSRF攻击,以及定期更换`cookie_secret`。
Tornado是一个著名的Python Web框架和异步网络库,由FriendFeed团队开发,后来被Facebook收购并开源。在本文中,我们将深入探讨Tornado 2.2.1版本,这是一个相对早期但仍然在某些场景下有需求的版本。 首先,...
《Python库:Jinja与Tornado的协同使用详解》 在Python的世界里,Jinja和Tornado是两个非常重要的库,它们分别在模板渲染和Web开发领域有着广泛的应用。"jinja_tornado-0.1.3.tar.gz"这个资源正是将两者结合,提供...
《PyPI官网下载 dp-tornado-0.3.9.tar.gz 深度解析》 在Python的世界里,PyPI(Python Package Index)是官方的软件仓库,它为开发者提供了无数的开源模块和库,方便他们构建自己的项目。本文将深入探讨PyPI上下载...
tornado-4.2.tar.gz
tornado-6.3.2.tar.gz