Python Tornado框架轻松写一个Web应用的全过程
作者:雷学委 发布时间:2022-05-10 10:38:36
标签:tornado,框架,web应用
目录
Tornado是什么
安装
试试看使用tornado框架来写一个web application
总结
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的一个原因!
以上随笔,简单使用分享,后面再继续推这个框架的解读。
参考链接:
关于Pip的使用 => https://www.jb51.net/article/219385.htm
Tornado => www.osgeo.cn/tornado/
来源:https://juejin.cn/post/6994600768573538341


猜你喜欢
- MySQL多个left join on关联条件顺序注意:下面的案例特别重要!请重视!SQL有点长,但确实是干货!结论如果存在多个left j
- 起因是这样的,有一张表存在慢sql,查询耗时最多达到12s,定位问题后发现是由于全表扫描导致,需要对字段增加索引,但是表的数据量600多万有
- hints是oracle提供的一种机制,用来告诉优化器按照我们的告诉它的方式生成执行计划。我们可以用hints来实现:
- 一个最最简单的例子:绘制一个从 0 到 360 度完整的 SIN 函数图形import numpy as npimport matplotl
- 而Easp类中提供了大量实用的ASP通用过程及方法,可以简化大部分的ASP操作。目前只提供了VBScript版,JScript版将来可能会提
- 实例如下所示:>>>from compiler.ast import flatten>>>Xmatrix
- Django默认情况下,按字母顺序对模型进行排序。因此,Event应用模型的顺序为Epic、EventHero、EventVillain、E
- this指针是面向对象程序设计中的一项重要概念,它表示当前运行的对象。在实现对象的方法时,可以使用this指针来获得该对象自身的引用。和其他
- 使用del和drop方法删除DataFrame中的列,使用drop方法一次删除多列数据准备:import pandas as pd
- 本文实例讲述了Python基于回溯法子集树模板解决马踏棋盘问题。分享给大家供大家参考,具体如下:问题将马放到国际象棋的8*8棋盘board上
- 在讲爬取淘宝详情页数据之前,先来介绍一款 Chrome 插件:Toggle JavaScript (它可以选择让网页是否显示 js 动态加载
- pytorch更新完后合并了Variable与Tensortorch.Tensor()能像Variable一样进行反向传播的更新,返回值为T
- 一、闭包1. 什么是闭包?在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生 闭包。闭包可以用来在一个函
- 也许自己真的就是有手残的毛病,你说好端端的环境配置好了,自己还在那里瞎鼓捣,我最不想看到的就是在安装一个别的模块的时候,自动卸载了本地的其他
- 一、Tensor 之间的运算规则相同大小 Tensor 之间的任何算术运算都会将运算应用到元素级不同大小 Tensor(要求dimensio
- 在python中安装了lxml-4.2.1,在使用时发现导入etree时IDE中报错Unresolved reference其实发现,不影响
- 你可以将FCKEDITOR放置到任何文件夹,默认情况下,将其放入到FCKEDITOR文件夹是最为简单的方法.如果你放入的文件夹使用别的名称,
- 最近,带领我的学生进行一个URTP项目设计,需要进行人脸识别。由于现在的OpenCV已经到了2.X版本,因此就不想用原来的1.X版本的代码,
- Python的第一个主流打包格式是.egg文件,现在大家庭中又有了一个叫做Wheel(*.whl)的新成员。wheel“被设计成包含PEP
- 1.因为oracle 10g暂时没有与win7兼容的版本,我们可以通过对安装软件中某些文件的修改达到安装的目地。 a)打开“\ORACLE1