python web(异步非阻塞)框架之tornado
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python web(异步非阻塞)框架之tornado,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1819字,纯文字阅读大概需要3分钟。
内容图文
![python web(异步非阻塞)框架之tornado](/upload/InfoBanner/zyjiaocheng/621/6f52141280cf49b79b2b042d03f20efd.jpg)
一.相关链接
1.GitHub:https://github.com/tornadoweb/tornado
2.PyPi:https://pypi.org/project/tornado/
3.Tornado官方文档:https://www.tornadoweb.org
4.相关教程:http://shouce.jb51.net/tornado
二.pip安装
pip install tornado
三.测试demo
# -*- coding:utf-8 -*-
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
import os.path
import logging
import time
from tornado.concurrent import run_on_executor
from concurrent.futures import ThreadPoolExecutor
from tornado.options import define, options
# 绝对路径
tool_path = os.path.abspath(os.path.dirname(__file__))
# log config
logging.basicConfig(level=logging.DEBUG, format="[%(asctime)s] %(levelname)s %(message)s", datefmt="%Y-%m-%d %H:%M:%S")
# 定义端口为8000
define("port", default=8000, help="run on the given port", type=int)
# GET请求,(同步阻塞)
class GetHandler(tornado.web.RequestHandler):
def get(self):
time.sleep(10)
self.write(str(time.time()))
# POST请求(异步非阻塞)
class IndexHandler(tornado.web.RequestHandler):
# 线程池
max_thread_num = 10
executor = ThreadPoolExecutor(max_workers=max_thread_num)
# 线程内处理
@run_on_executor
# @tornado.gen.coroutine # 支持异步处理
def my_func(self):
# do your thing
time.sleep(10)
return 1
@tornado.web.asynchronous
@tornado.gen.engine # 同步处理,不能及时响应
# @tornado.gen.coroutine # 支持异步处理
def post(self):
res = yield self.my_func()
self.write(str(res))
self.finish()
def callback():
print("start web server process")
# 主函数
def main():
tornado.options.parse_command_line()
# 定义app
app = tornado.web.Application(
handlers=[(r'/test', IndexHandler),(r'/get', GetHandler)]
)
http_server = tornado.httpserver.HTTPServer(app, callback())
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
if __name__ == '__main__':
main()
参考:https://blog.csdn.net/yz930618/article/details/83590655
内容总结
以上是互联网集市为您收集整理的python web(异步非阻塞)框架之tornado全部内容,希望文章能够帮你解决python web(异步非阻塞)框架之tornado所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。