这是我参与8月更文挑战的第10天,活动详情查看:8月更文挑战html
学委以前在看Jupyter组件的源码的时候,发现了tornado这个web框架。python
不单单作一个web框架, 经过使用非阻塞网络I/O,Tornado能够扩展到数万个开放链接。web
这样很是适合 long polling , WebSockets 以及其余须要与每一个用户创建长期链接的应用程序。编程
好,下面安装试用一下。markdown
pip install tornado
复制代码
pip 不会用的朋友能够看看 # 秒懂精通pip并快速体验深度学习应用吧!【多图建议收藏】网络
来一个简单的,保存下面代码为app.py文件app
""" 雷学委#代码Demo """
import tornado.ioloop
import tornado.web
“”“编写一个请求处理器”“”
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, Tornado Server");
"""建立一个web app"""
def make_app():
#绑定接口“/” 到MainHandler
return tornado.web.Application([
(r"/", MainHandler),
])
#程序入口
if __name__ == '__main__':
app = make_app()
app.listen(8080)
tornado.ioloop.IOLoop.current().start()
复制代码
运行以下:(python app.py)框架
效果以下:tornado
这个示例很简单,先学会用起来。oop
""" 雷学委#代码Demo """
import tornado.ioloop
import tornado.web
#一个处理form的请求处理器
class MyFormHandler(tornado.web.RequestHandler):
def get(self):
#直接页面渲染一个form
self.write('<html><body class="leiXueWei"><form action="/form" method="POST">'
'<input type="text" name="message">'
'<input class="leiXueWei" type="submit" value="Submit">'
'</form></body></html>')
def post(self):
self.set_header("Content-Type", "text/plain")
self.write("You wrote " + self.get_body_argument("message"))
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, Tornado Server");
def make_xue_wei_app():
#使用application加载多个路由: “/” 接口路由 和 “/form” 接口路由
return tornado.web.Application([
(r"/", MainHandler),
(r"/form", MyFormHandler)
])
if __name__ == '__main__':
app = make_xue_wei_app()
app.listen(18081)
tornado.ioloop.IOLoop.current().start()
复制代码
以上代码比前面第一个示例多了一个form的请求处理器和路由加载。
看看页面渲染的效果,没有内嵌任何js,这个submit按钮就直接把发起了POST请求给“/form”接口。
并且博主也没有编写任何JS处理页面,特别简化,这个”小魔法“是本文想要推荐tornado的一个缘由!
以上随笔,简单使用分享,后面再继续推这个框架的解读。
对了,学委还有这个能够关注长期阅读 =>雷学委趣味编程故事汇编
或者=> 雷学委NodeJS系列
持续学习持续开发,我是雷学委!
编程颇有趣,关键是把技术搞透彻讲明白。
创做不易,请多多支持,点赞收藏支持学委吧!
关于Pip的使用 => juejin.cn/post/698259…
Tornado => www.osgeo.cn/tornado/