tornado.options
python
options 可以让服务运行前提前设置参数,而常见的2种设置参数方式为:
1. 命令行设置
2. 文件设置
命令行解析
使用tornado.options.define
前定义,通常在模块的顶层。
然后,可以将这些选项作为以下属性的属性进行访问tornado.options.options
但要解析命令行参数时,需要使用tornado.options.parse_command_line
来解析参数
具体代码如下:
python
# 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
,将必要的参数直接写入即可
python
port=8000
debug=True
设置好文件后,通过tornado.options.parse_config_file
来解析
tip
有了以上方法,就可更新的设置服务器的各种通用参数了,如数据库参数、文件目录参数、服务器参数等
代码演练
python
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=True
debug=options.debug
)
# app.listen(8000)
app.listen(options.port)
ioloop.IOLoop.current().start()