第二节:Tornado简介之输入输出
一、Tornado输入和输出的简单实例
- 输出: 从 Tornado 输出到浏览器我们可以使用 write
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write('Hello Python')
- 输入: 可以通过
和get_argument
来获取参数值get_arguments
class AbcHandler(tornado.web.RequestHandler):
def get(self):
self.write('Hello Tornado')
self.write('<br>')
name = self.get_argument('name', 'no')
self.write(name)
name = self.get_arguments('name')
self.write('<br>'.join(name))
1.1 在AbcHandler类中添加输入单个变量的命令:
class AbcHandler(tornado.web.RequestHandler):
def get(self):
self.write('Hello Tornado')
self.write('<br>')
name = self.get_argument('name', 'no')
self.write(name)
- 在网址栏中添加 name=许嵩
第二节:Tornado简介之输入输出第二节:Tornado简介之输入输出
1.2 在AbcHandler类中添加输入多个变量的命令:
class AbcHandler(tornado.web.RequestHandler):
def get(self):
self.write('Hello Tornado')
self.write('<br>')
name = self.get_argument('name', 'no')
self.write(name)
name = self.get_arguments('name')
self.write('<br>'.join(name))
- 在网址栏中添加 name=许嵩&name=李易峰
第二节:Tornado简介之输入输出第二节:Tornado简介之输入输出 - 注:
得到的是最后一个值get_arguments
1.3 完整代码:
import tornado.ioloop
import tornado.web
import tornado.httpserver
import tornado.options
from tornado.options import define, options
define('port', default=8000, help='run port',type=int )
define('version', default='0.0.0.1', help='version', type=str)
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write('Hello Python')
class AbcHandler(tornado.web.RequestHandler):
def get(self):
self.write('Hello Tornado')
self.write('<br>')
name = self.get_argument('name', 'no')
self.write(name)
name = self.get_arguments('name')
self.write('<br>'.join(name))
application = tornado.web.Application([
(r"/", MainHandler),
(r"/abc", AbcHandler)
])
if __name__ == '__main__':
tornado.options.parse_command_line()
print(options.port)
print(options.version)
http_server = tornado.httpserver.HTTPServer(application)
application.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
二、输出可接受的对象
2.1 接受对象类型
- bytes
class IndexHandler(tornado.web.RequestHandler): def get(self): self.write(b'Tornado <br>')
- Unicode
self.write('<b>Tornado</b><br>')
- 字典
user = { 'name': 'budong', 'age': 18 } self.write(user)
- 其他
li = [1, 2, 3, 4]
import json
li = json.dumps(li)
self.write(li)
print(repr(li))
li = json.loads(li)
print(repr(li))
2.2 flush缓冲区
会先把内容放在缓冲区,正常情况下,当请求处理完成的时候会自动把缓冲区的内容输出到浏览器,但是可以调用
write
方法,这样可以直接把缓冲区的内容输出到浏览器,不用等待请求处理完成
flush
self.flush()
time.sleep(3)
self.write('<b>Tornado</b><br>')
2.3 render返回HTML
通过 render 可以返回一个 html 文件
class TemHandler(tornado.web.RequestHandler):
def get(self):
self.render('in_out.html')
- Application中配置html路径:
想要 Tornado 能够正确的找到 html 文件,需要在 Application 中指定文件的位置
template_path='templates
- 1
2.4 redirect跳转路由
通过 redirect跳转到指定的路由
class RecHandler(tornado.web.RequestHandler):
def get(self):
import time
time.sleep(3)
self.redirect(r'/tem')
- Application中配置路由表
(r'/rec', RecHandler)
2.5 输出总结
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34120459/article/details/79305988
个人分类: tornado框架