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
0
投稿
猜你喜欢
- 对于请求一些网站,我们需要加上请求头才可以完成网页的抓取,不然会得到一些错误,无法返回抓取的网页。下面,介绍两种添加请求头的方法。方法一:借
- Flask-sqlalchemy是关于flask一个针对数据库管理的。文中我们采用一个关于员工显示例子。首先,我们创建SQLALCHEMY对
- 前言:Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分。文本总是Unicode,由str类型表示,二进制数据则由by
- 1.触发器概述触发器是SQL Server数据库应用中一个重要工具,是一种特殊类型的存储过程,应用非常广泛。一般存储过程主要通过存储过程名而
- 生成器(generator)概念生成器不会把结果保存在一个系列中,而是保存生成器的状态,在每次进行迭代时返回一个值,直到遇到StopIter
- 一、前言 英语单词之间是通过空格分隔的,但是中文却不存在空格的概念,因此需要
- 如今,基本每个网站都会需要到Tab切换展示内容的滑动门效果应用,这种效果可以在更少的页面空间内,展示更多的网站内容,节约空间,方便用户集中操
- ASP实现即时显示当前页面浏览人数online.asp文件 <!--#include file="dbconn.a
- HTTP格式HTTP GET请求的格式:GET /path HTTP/1.1Header1: Value1Header2: Value2He
- 思路:队列使用说明:multiprocessing.Queue()#用于进程间通信,单主进程与子进程无法通信(使用进程池时尽量不要使用这个)
- Python3 使用pillow库生成随机验证码的代码如下所示:import random# pillow 包的使用from PIL imp
- 具体代码和实现方法见下:第一个办法,这个程序可以进行万亿以下的货币金额转换(够用的了吧),其中汉字与数字均按一位计:Function&nbs
- 本文实例讲述了django+js+ajax实现刷新页面的方法。分享给大家供大家参考,具体如下:在服务器开发的时候,为了方便将服务器对外开一个
- 要选择有助于使查询执行更快的列,应遵循如下规则(这里,“BLOB 类型”应该理解为即包含B L O
- 因项目需要根据指定格式的文件生成XML标注文件,可以方便使用LabelImg打开进行编辑和查看。其原始文件默认使用逗号进行分隔,如下
- '-----------------------------------------------------------
- 本来而言,这个问题网上很多资料,但是网上资料都是复制来复制去,很多话大家其实都不是很明白的,或者拿着官方文档翻译过来的,让人看的非常迷糊。今
- 权限全局配置:REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES':
- 前段时间和哥们胡侃的时候还说腾讯抄的有水平,不过这次我溴了,腾讯房产被新浪乐居给幽默了一把。乐居:http://bj.house.sina.
- 1、终极方法:条件注释<!--[if lte IE 6]> 这段文字仅显示在 IE6及IE6以下版本。 <![endif]