问题:
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.options.parse_command_line`或`tornado.options.parse_config_file`读取。 6. **启动和运行** 项目通常有一个`main.py`或`run.py`文件,它初始化`Application`,加载配置,并通过`...
本实例将探讨如何使用Tornado框架来实现一个简单的Todo应用,它是基于Web.py的Todo应用的改写版本。 首先,我们需要了解Tornado的基础架构。Tornado的核心组件包括`HTTPServer`、`RequestHandler`和`Application`。...
托恩斯克尔 _________ \_______ _____/ tornskel - Tornado Skeleton \___ fully functional skeletal template app ...Usage: launch.py [options] Options: -h, --help show this help message and exit -r, --
from tornado.options import parse_command_line, options class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") def make_app(): return tornado.web.Application([ ...
app.listen(options.port) tornado.ioloop.IOLoop.current().start() ``` 总的来说,这个示例展示了如何使用Tornado搭建一个简单的API服务,包括与MySQL数据库的交互,以及处理HTTP请求。在实际开发中,可能还...
sed -i 's/StreamHandler()/StreamHandler(sys.__stdout__)/' /opt/python/python3/lib/python3.6/site-packages/tornado/log.py ``` 这条命令会替换`log.py`文件中所有`StreamHandler()`的实例为`StreamHandler(sys...
本文实例为大家分享了tornado实现登录和登出的具体代码,供大家...from tornado.options import define, options define("port", default=8000, help="run on the given port", type=int) class BaseHandler(tornado.w
监控中,通常要使用图片更直观的看出集群的运行状况。 以下是一个简单的demo,通过rrdtool生成动态的...from tornado.options import define, options, parse_command_line from tornado.web import RequestHandler c
from tornado.options import define, options define("port", default=8000, help="run on the given port", type=int) class MainHandler(tornado.web.RequestHandler): def get(self): self.render( "index....