tornado.options
options 可以让服务运行前提前设置参数,而常见的2种设置参数方式为:1. 命令行设置
2. 文件设置
命令行解析
使用tornado.options.define
前定义,通常在模块的顶层。
然后,可以将这些选项作为以下属性的属性进行访问tornado.options.options
但要解析命令行参数时,需要使用tornado.options.parse_command_line
来解析参数
具体代码如下:
# main.py
import time
from tornado import web
import tornado
from tornado.options import define, options, parse_command_line#define, 定义一些可以在命令行中传递的参数以及类型
define('port', default=8008, help="port to listen on", type=int)
define('debug', default=True, help="set tornado debug mode", type=bool)#parse_command_line()
#options是一个类,全局只有一个options
class IndexHandler(web.RequestHandler):async def get(self):self.write("hello Tornado")class IndexHandler2(web.RequestHandler):async def get(self):self.write("hello Tornado 你好")if __name__ == "__main__":app = web.Application([("/", IndexHandler),("/index/", IndexHandler2)], debug=options.debug)app.listen(options.port)tornado.ioloop.IOLoop.current().start()
文件设置
创建文件server.conf
,将必要的参数直接写入即可
port=8000
debug=True
设置好文件后,通过tornado.options.parse_config_file
来解析
tip
有了以上方法,就可更新的设置服务器的各种通用参数了,如数据库参数、文件目录参数、服务器参数等
代码演练
from tornado import web, ioloop
from tornado.options import define, options, parse_config_file# 定义key来接收传递进来的参数
define('port', default=8000, help='port to listen on', type=int)
define('debug', default=True, help='set debug mode', type=bool)# 解析文件传递进来的参数
parse_config_file('./server.conf')class IndexHandler(web.RequestHandler):async def get(self): # 协程self.write('Hello Tornado!!123123')if __name__ == '__main__':app = web.Application([('/', IndexHandler)],# debug=Truedebug=options.debug)# app.listen(8000)app.listen(options.port)ioloop.IOLoop.current().start()