tornado二:tornado options
在上一篇文章中,启动http服务器时,将port写死了。当需要开启不同端口的http服务器时,将修改代码。
如果让port变得灵活?使用参数传递:tornado.options
tornado.options 用来定义全局参数、存储、转换
一、使用tornado.options.define()定义全局参数
define原型:
define(name,default=None, type=None, help=None, metavar=None,multiple=None,bool=False, group=None,callback=None)
name:选项的变量名,必须保证其唯一性,否则会抛出option 'xxx"错误
default:设置选项变量的默认值
type:转换选项变量值为什么类型。如果没有设置type,则根据default的值 来转换变量值
multiple:设置选项变量是否可以为多个值,默认为False
from tornado.options import define
define("port", default=8000, type=int) define("list", default=[], type=str)
二、使用全局参数:tornado.options.options.参数名称
所有定义的选项变量都会作为tornado.options.options对象的属性
from tornado.options import options
print options.port print options.list
三、在使用全局参数之前,要先获取全局参数
获取全局参数有两种方法:
1.从命令行获取: tornado.options.parse_command_line() 转换命令行参数为options的属性
2.从配置文件获取: tornado.options.parse_config_file(path) 从配置文件导入参数
示例:从命令行获取参数
#coding=utf-8 import tornado.web import tornado.ioloop from tornado.options import define from tornado.options import options from tornado.options import parse_command_line define("port", default=8000, type=int) define("list", default=[], type=str) class IndexHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): self.write("this is return text") if __name__ == '__main__': # 转换命令行参数,并保存到tornado.options.options parse_command_line() app = tornado.web.Application([ (r'/', IndexHandler) ]) import tornado.httpserver httpServer = tornado.httpserver.HTTPServer(app) httpServer.bind(options.port) httpServer.start(1) tornado.ioloop.IOLoop.current().start() # 启动server:python server02.py --port=9000 --list=good,nice,handsome,cool
示例:从配置文件中获取参数
创建普通文件config
port=8080 list=["good", "nice", "handsome"]
#coding=utf-8 import tornado.web import tornado.ioloop from tornado.options import options, define from tornado.options import parse_config_file define("port", default=8000, type=int) define("list", default=[], type=str) class IndexHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): self.write("this is return text") if __name__ == '__main__': # 转换配置文件参数,并保存到tornado.options.options parse_config_file("config") app = tornado.web.Application([ (r'/', IndexHandler) ]) import tornado.httpserver httpServer = tornado.httpserver.HTTPServer(app) httpServer.bind(options.port) httpServer.start(1) tornado.ioloop.IOLoop.current().start() # 启动server:python server02.py --port=9000 --list=good,nice,handsome,cool
四、日志
当使用parse_command_line或parse_config_file(path)方法获取参数时:
tornado会默认开启logging模块功能--日志
会向服务器终端屏幕输出一些打印信息
如果使用配置文件时,关闭日志,加上代码:tornaod.options.options.logging = None
使用命令行获取参数时,关闭日志,在命令行加上参数: --logging=none
#coding=utf-8 import tornado.web import tornado.ioloop from tornado.options import options, define from tornado.options import parse_config_file define("port", default=8000, type=int) define("list", default=[], type=str) class IndexHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): self.write("this is return text") if __name__ == '__main__': options.logging = None parse_config_file("config") app = tornado.web.Application([ (r'/', IndexHandler) ]) import tornado.httpserver httpServer = tornado.httpserver.HTTPServer(app) httpServer.bind(options.port) httpServer.start(1) tornado.ioloop.IOLoop.current().start() # 启动server:python server02.py --port=9000 --list=good,nice,handsome,cool
python server02.py --port=9000 --list=good,nice,handsome,cool --logging=none
posted on 2018-07-22 23:14 myworldworld 阅读(621) 评论(0) 收藏 举报
浙公网安备 33010602011771号