cf新地图地狱王宫,泾县,招惹花心总裁
pip install tronado
tar xvzf tornado-4.3.tar.gz cd tornado-4.3 python setup.py build sudo python setup.py install
新建hello_tornado.py文件
# coding:utf-8 import tornado.web import tornado.ioloop class indexhandler(tornado.web.requesthandler): """主路由处理类""" def get(self): """对应http的get请求方式""" self.write("hello tronado") if __name__ == "__main__": app = tornado.web.application([ (r"/", indexhandler), ]) app.listen(8000) tornado.ioloop.ioloop.current().start()
执行以下命令,启动tronado
python hello_tornado.py
在浏览器中,输入地址:127.0.0.1:8000

tornado的基础web框架模块
上述代码示例中,我们都是将服务端口的参数血丝在程序中的,很不灵活,而tornado为我们提供了一个便捷的工具---tornado.options模块——可以配置全局参数定义、存储、转换
用来定义options选项变量的方法,定义的变量可以在全局的tornado.options.options中获取使用,传入参数:
全局的options对象,所以定义的选项变量都会作为该对象的属性
转换命令行参数,并将转换后的值对应的设置到全局options对象相关属性上。追加命令行参数的方式是myoption=myvalue
示例:
新建demo_02.py文件 # coding:utf-8 import tornado.web import tornado.ioloop import tornado.httpserver import tornado.options # 新导入的options模块 tornado.options.define("port", default=8000, type=int, help="run server on the given port.") # 定义服务器监听端口选项 tornado.options.define("tornado", default=[], type=str, multiple=true, help="tornado subjects.") # 无意义,演示多值情况 class indexhandler(tornado.web.requesthandler): """主路由处理类""" def get(self): """对应http的get请求方式""" self.write("hello tornado!") if __name__ == "__main__": tornado.options.parse_command_line() print(tornado.options.options.tornado) # 输出多值选项 app = tornado.web.application([ (r"/", indexhandler), ]) http_server = tornado.httpserver.httpserver(app) http_server.listen(tornado.options.options.port) tornado.ioloop.ioloop.current().start()
执行如下命令开启程序:
python demo_02.py --port=9000 --tornado=python,c++,java,php,ios
我们用代码来看一下如何使用,新建配置文件config,注意字符串和列表按照python的语法格式:
port = 8000 tornado = ["python","c++","java","php","ios"]
将demo_02.py文件修改
... if __name__ == "__main__": tornado.options.parse_config_file("./config") ...
通常都是建立.py文件,例如
# conding:utf-8 # redis配置 redis_options = { 'redis_host':'127.0.0.1', 'redis_port':6379, 'redis_pass':'', } # tornado app配置 settings = { 'template_path': os.path.join(os.path.dirname(__file__), 'templates'), 'static_path': os.path.join(os.path.dirname(__file__), 'statics'), 'cookie_secret':'0q1akoktqhqaa+n80xhyw7kcgskoue2sncw06uixxgi=', 'xsrf_cookies':false, 'login_url':'/login', 'debug':true, } # 日志 log_path = os.path.join(os.path.dirname(__file__), 'logs/log')
然后在需要调用它的模块中添加
import config if __name__ = "__main__": app = tornado.web.application([], **config.settings)
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Python爬虫:Request Payload和Form Data的简单区别说明
浅谈Python中threading join和setDaemon用法及区别说明
Python3-异步进程回调函数(callback())介绍
python继承threading.Thread实现有返回值的子类实例
Python中使用threading.Event协调线程的运行详解
网友评论