输出
write方式
前面介绍基本的输出,可以通过write把字符串输出到浏览器,除此之外,write还可以把那些东西输出到浏览器呢?
字节bytes
self.write(b'Tornado
') #bytes 字节
字典dict
user = {'name':'cainiao','age':18} #字典
self.write(user) #字典
字符Unicode
self.write('22
33')
其他
li = [1,2,3,4]
import json
li = json.dumps(li) #列表,需要序列化成json字符
self.write(li)
代码实例
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define,options
define('port', default=8080, help='run port', type=int)
class TestHandler(tornado.web.RequestHandler):
def get(self):
self.write(b'Tornado
') #bytes 字节
user = {'name':'cainiao','age':18} #字典
print(user)
print(repr(user))
self.write('22
33')
self.write(user) #字典,如果输出有个是字典,那么其他一并当做json格式输出,所以上面那个
会失效显示出来,
li = [1,2,3,4]
import json
li = json.dumps(li) #列表,需要序列化成json字符
print(li)
print(repr(li))
self.write(li)
li = json.loads(li) #反序列
print(li)
print(repr(li))
application = tornado.web.Application(
handlers = [
(r'/test',TestHandler),
],
debug = True #调试模式,修改后自动重启服务,不需要自动重启,生产情况下切勿开启,安全性
)
if __name__ == '__main__':
tornado.options.parse_command_line()
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
运行结果:
image.png
注意:上面
标签失效,显示出来了,这是为什么呢?
解答:按照源码write方法解释
image.png