6-tornado配置文件的使用(命令行解析、文件设置)

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=True
        debug=options.debug
    )
    # app.listen(8000)
    app.listen(options.port)
    ioloop.IOLoop.current().start()

相关推荐

  1. 6-tornado配置文件使用(命令解析文件设置)

    2023-12-06 10:30:04       59 阅读
  2. Terraform命令配置文件

    2023-12-06 10:30:04       39 阅读
  3. tornado上传文件

    2023-12-06 10:30:04       40 阅读
  4. TP6.0 命令生成类库文件

    2023-12-06 10:30:04       30 阅读
  5. 在 Vim 配置文件设置自动显示

    2023-12-06 10:30:04       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-06 10:30:04       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-06 10:30:04       97 阅读
  3. 在Django里面运行非项目文件

    2023-12-06 10:30:04       78 阅读
  4. Python语言-面向对象

    2023-12-06 10:30:04       88 阅读

热门阅读

  1. 编译型语言和解释型语言的区别

    2023-12-06 10:30:04       54 阅读
  2. SpringBoot使用mybatis-plus分页查询无效解决方案

    2023-12-06 10:30:04       69 阅读
  3. 腾讯面试笔试题2023.11.30

    2023-12-06 10:30:04       55 阅读
  4. gsap实现文字动画效果02

    2023-12-06 10:30:04       56 阅读
  5. Oracle初始化参数文件pfile和spfile

    2023-12-06 10:30:04       57 阅读
  6. AFPN:用于目标检测的渐近特征金字塔网络

    2023-12-06 10:30:04       61 阅读
  7. AFPN:用于目标检测的渐近特征金字塔网络

    2023-12-06 10:30:04       54 阅读
  8. 【SpringCloud】设计原则之前后端分离与版本控制

    2023-12-06 10:30:04       50 阅读
  9. ES6基础语法

    2023-12-06 10:30:04       60 阅读
  10. ES6迭代器

    2023-12-06 10:30:04       58 阅读
  11. 查看php进程占用内存

    2023-12-06 10:30:04       60 阅读