上文的程序中有这样一段:

class MessageHandler(tornado.web.RequestHandler):def get(self):self.write('''
<html>
<head><title>Please Input Message</title>
</head>
<body><form action="/message" method="post"><input type="text" name="message"><br><input type="submit" value="submit"></form>
</body>
</html>''' )def post(self):#self.set_header("Content-Type", "text/plain")self.write("You wrote <h1>" + self.get_argument("message") + "</h1>")

当收到GET请求时,返回一段HTML表单。

上面的这种写法,将html写在python代码中,灵活性差,而且view代码与controller代码混合在一块,不符合MVC的原则。

所以我们采用Tornado中的模板。

新建form.html:

<html><head><title>{{title}}</title></head><body><form action="/message" method="post"><input type="text" name="message" value="please input."><input type="submit" value="submit"></form></body>
</html>

然后将上面的python代码修改为:

class MessageHandler(tornado.web.RequestHandler):def get(self):self.render("form.html", title="Input Message")def post(self):#self.set_header("Content-Type", "text/plain")self.write("You wrote <h1>" + self.get_argument("message") + "</h1>")

这样代码简洁了很多。

完整的代码是:

import tornado.ioloop
import tornado.webclass MainHandler(tornado.web.RequestHandler):def get(self):self.write("<h1>This is Home Page!</h1>")class StoryHandler(tornado.web.RequestHandler):def get(self, story_id):self.write("You request the story <h1>" + story_id + "</h1>")class MessageHandler(tornado.web.RequestHandler):def get(self):self.render("form.html", title="Input Message")def post(self):#self.set_header("Content-Type", "text/plain")self.write("You wrote <h1>" + self.get_argument("message") + "</h1>")application = tornado.web.Application([(r"/", MainHandler),(r"/story/([0-9]+)", StoryHandler),(r"/message", MessageHandler),])if __name__ == '__main__':application.listen(8888)tornado.ioloop.IOLoop.instance().start()

转载于:https://www.cnblogs.com/inevermore/p/4190382.html

Tornado框架中视图模板Template的使用相关推荐

  1. php视图,thinkPHP框架中视图的讲解(附代码)

    这篇文章给大家介绍的内容是关于thinkPHP框架中视图的讲解(附代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. thinkPHP中有一个方法和display()相似,fetc ...

  2. C++中的模板template

    1.Cpp中的模板template 模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码.模板是创建泛型类或函数的蓝图或公式.库容器,比如迭代器和算法都是泛型编程的例子,它们都使用了 ...

  3. crossphp框架中,在模板中加载其他模板

    这里说我自己做的项目的应用场景 要求是用layui框架的layer组件,实现弹出层效果,用原声PHP无疑很容易做到,但是如果应用到crossphp框架流程就会非常麻烦 这里简单讲一下大致的步骤: 1. ...

  4. C++中函数模板template和函数参数为指针,且有返回值的结合使用

    1 #include<iostream> 2 using namespace std; 3 // 利用模板函数计算一个表达式 4 template<class Type> 5 ...

  5. python协程异步原理_简单介绍Python的Tornado框架中的协程异步实现原理

    Tornado 4.0 已经发布了很长一段时间了, 新版本广泛的应用了协程(Future)特性. 我们目前已经将 Tornado 升级到最新版本, 而且也大量的使用协程特性. 很长时间没有更新博客, ...

  6. ES6, Angular,React和ABAP中的String Template(字符串模板)

    String Template(字符串模板)在很多编程语言和框架中都支持,是一个很有用的特性.本文将Jerry工作中使用到的String Template的特性做一个总结. ES6 阮一峰老师有一个专 ...

  7. 模板template

    这个是C++中的模板..template<typename T> 这个是定义模板的固定格式 模板应该可以理解到它的意思吧.. 比如你想求2个int float 或double型变量的值,只 ...

  8. 实习手册八(Python基于Tornado框架的接口响应服务)最终章

    目录 前言 Tornado_program common handler_base mysql_base sqlalchemy_base redis_base model log user serve ...

  9. Django框架(23.Django中的模板的标签、变量、过滤器和注释)

    模板 作为Web框架,Django提供了模板,用于编写html代码,还可以嵌入模板代码更快更方便的完成页面开发,再通过在视图中渲染模板,将生成最终的html字符串返回给客户端浏览器.模版致力于表达外观 ...

最新文章

  1. CentOS 6.7 Gitolite 服务搭建及TortoiseGit配置连接
  2. HTML 4.01 event 事件
  3. 816 - Abbott's Revenge
  4. 【Elasticsearch】 elasticsearch中 rollover 的用法
  5. 火灾原来离我们那么近
  6. 使用交互环境 连载3
  7. URLencode 转义符
  8. javascript语言
  9. ​ java获取中文拼音首字母​
  10. 分享100个PHP源码整站系统,总有一款适合你
  11. 如何取得/etiantian文件的权限对应的数字内容,如-rw-r--r-- 为644,要求使用命令取...
  12. windows电脑常见问题故障解决办法
  13. 让Win7系统下的硬盘不在狂闪的诀窍
  14. Chinaz:谈谈近期的安全事件
  15. Scratch软件编程等级考试二级——20210320
  16. 什么是适用于iPhone和iPad的iOS最新版本?
  17. 从0开始的技术美术之路(美术篇)(一)美术理论基础
  18. Python学习笔记——Tornado模板
  19. 【王道计算机网络笔记】数据链路层-介质访问控制
  20. adb 命令 推文件_ADB放文件和取文件\adb push 、 adb pull

热门文章

  1. html监听页面关闭事件,JS针对浏览器窗口关闭事件的监听方法集锦
  2. 智能车竞赛技术报告 | 节能信标组 - 华南理工大学 - 华工雨花队
  3. 第十六届全国大学生智能车竞赛线上赛点赛道审核 - 浙江赛区
  4. 对于来自范兵提供光电检测带模块解析
  5. 第十五届全国大学生智能汽车竞赛各分赛区国赛预选队伍成绩认定一览表
  6. 我虐小车千百遍,小车待我如初恋
  7. function java_java.util.function之function
  8. windows sftp工具_将SSH服务器映射成Windows网络驱动器
  9. html去除边角,WEB开发向HTML5及CSS3迈进(1)——圆框边角的处理
  10. 游戏伤害计算机,电脑游戏的危害(The harm of PC games)