Python Tornado框架轻松写一个Web应用的全过程
Tornado是什么
学委之前在看Jupyter组件的源码的时候,发现了tornado这个web框架。
不仅仅做一个web框架,通过使用非阻塞网络I/O,Tornado可以扩展到数万个开放连接。
这样非常适合long polling,WebSockets以及其他需要与每个用户建立长期连接的应用程序。
好,下面安装试用一下。
安装
pip install tornado
pip 不会用的朋友可以看看 # 秒懂精通pip并快速体验深度学习应用吧!【多图建议收藏】
试试看使用tornado框架来写一个web application
来一个简单的,保存下面代码为app.py文件
"""
雷学委#代码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)

效果如下:

这个示例很简单,先学会用起来。
再试试做一个form
"""
雷学委#代码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的一个原因!


以上随笔,简单使用分享,后面再继续推这个框架的解读。
总结
到此这篇关于Python Tornado框架轻松写一个Web应用的文章就介绍到这了,更多相关Python Tornado框架写Web应用内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
参考链接:
关于Pip的使用 => https://www.jb51.net/article/219385.htm
Tornado => www.osgeo.cn/tornado/
版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。
                    关注官方微信