3种输出方法:write render redirectimport tornado.ioloop

  1. import tornado.web
  2. import tornado.httpserver # 非阻塞
  3. import tornado.options # 提供了多种选择 python xxx.py --port=xxxx
  4. from tornado.options import define,options
  5. define('port',default=8000,help='run port',type=int) # windows通过Ctrl+鼠标左键
  6. define('version',default=0.1,help='version',type=str)
  7. class MainHandler(tornado.web.RequestHandler):
  8. def get(self):
  9. self.render("ces.html") # 写入页面
  10. class RecHandler(tornado.web.RequestHandler):
  11. def get(self):
  12. self.redirect(r"/rec1") # 在进入这个网址(路由),自动跳转到rec1去
  13. class Rec1Handler(tornado.web.RequestHandler):
  14. def get(self):
  15. self.write("由/rec跳转过来")
  16. # request
  17. self.write(self.request.remote_ip) # remote_ip属性查询发送请求的ip地址
  18. # (浏览器->virtualBox->虚拟环境 所以得到的不是浏览器的ip)
  19. print(self.request.full_url()) # full_url方法查询完整的url
  20. print(self.request.request_time()) # 处理请求的时间
  21. application = tornado.web.Application(
  22. handlers=[
  23. (r"/",MainHandler),
  24. (r'/rec', RecHandler),
  25. (r'/rec1', Rec1Handler),
  26. ],
  27. template_path='templates', # 表明页面html的路径
  28. debug=True # 上传代码后服务器自动重启
  29. )
  30. if __name__ == '__main__':
  31. tornado.options.parse_command_line() # 通过sys.arg获取命令行输入参数(python xxx.py --port=xxx)
  32. print(options.port)
  33. print(options.version)
  34. http_server = tornado.httpserver.HTTPServer(application) # 非阻塞
  35. application.listen(options.port)
  36. tornado.ioloop.IOLoop.instance().start() # 启动io循环
  37. # 知识点
  38. # 输出3种:
  39. # write 输出到浏览器。 先写入缓冲(flush直接写到浏览器)再一起写入浏览器
            write 可写入 三种类型 unicode字符串,dict,和 /b
  40. # render写入页面 html文件
  41. # template_path = 'templates', # 这句写在路由表里,表明路径templates
  42. # redirect 自动跳转页面
  43. # 在进入这个网址(路由),自动跳转到另一个网址
  44. # request
  45. #.remote_ip查询发送请求的ip地址
  46. # debug调式 虫子--晶体管

tornado-输出,request的更多相关文章

  1. Tornado输出和响应头

    1.输出 再来看看输出`write`,实际上,`write`并没有直接把数据返回给前端,而是先写到缓存区,函数结束之后才会返回到前端,我们验证如下 class FlushHandler(tornado ...

  2. tornado输出json

    只需要输出一个dict就自动会变成json http://www.tornadoweb.org/en/stable/web.html#tornado.web.RequestHandler.write

  3. tornado RequestHandler request.body & request.arguments

    request.body , 请求的原始内容,post方式放在body中的. request.arguments, body参数和url参数的统一体, 同时也是经过“加工”,解码的. eg.在对接其他 ...

  4. 2.tornado请求与响应

    之前我们介绍了tornado的基础流程,但还遗留了一些问题.今天我们就来解决遗留问题并学习新的内容 settings,使用tornado.web.Application(handler, **sett ...

  5. 2.(基础)tornado的请求与响应

    之前我们介绍了tornado 的基础流程,但是还遗留了一些问题,今天我们就来解决这些遗留问题并学习新的内容 settings,使用tornado.web.Application(handler, ** ...

  6. struts2 request内幕 为什么在struts2用EL表达式可以取值

    不知道大家有没有想过这样一个问题:为什么在action中的实例变量,没有使用request.setAttribute()方法将值添加到request范围内,却能在jsp中用EL表达式取出? 众所周知, ...

  7. Strut2 ognl取出存放在request,session,application和对象栈的中的值

    1.取出request,session,applicaiton中的值 a.往里面加入request,session,application中加入值 public String testServlet( ...

  8. Flask的request和session是从哪里来的?

    因为之前一直在项目中使用django, 所以在学习Flask的过程中, 难免对吧django和Flask进行对比, 这一次我发现Flask中的request和session并没有想象的那么简单, 所以 ...

  9. tornado框架基础01-路由简介

    tornado 小而精 Django 大而全 Web框架 Tornado是一个由Python开发的Web框架 Web服务 利用Tornado,可以快速搭建和一个高性能的Web服务 非阻塞 Tornad ...

  10. <c:out>标签不能正确输出value中的值

    问题: 我打算在jsp中输出request中的值,它的key为username, <c:out value="${requestScope.username}"/> 但 ...

随机推荐

  1. 区间DP(总结)

    学长一晚上的耐心讲解,使我明白区间DP这么高级的东西,还是挺容易的.也就是在一段区间内的动态规划. 下面用例题进行总结. 例题:石子归并. 描述 有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石 ...

  2. 斐波那契数列的5种python实现写法

    斐波那契数列的5种python写法       斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖 ...

  3. Python 操作Excel之通过xlutils实现在保留原格式的情况下追加写入数据

    在Python操作Excel 的模块有 xlrd.xlwt.xlutils等. xlrd:读取Excel文件数据 xlwt:写入Excel 数据,缺点是Excel格式无法复用,为了方便用户,写入的话, ...

  4. pycharm的安装和激活

    这里可以自定意义安装路径 32-bit是创建32位桌面快捷方式(64-bit同理) .py勾选是默认关联py文件,勾选上后所有py文件默认用pycharm打开 Download....勾选是下载安装X ...

  5. Gitserver代理上网安装出现故障的几个解决的方法。

    1.gem安装出现以下错误 root@ubuntu:/home/git/gitlab# sudo gem install bundler --no-ri --no-rdoc ERROR:  Could ...

  6. 00.嵌入式Linux开发环境搭建

     3.虚拟机上网配置 虚拟机如果要从网上获取资源,就要能够访问外网.虚拟机有三种上网方式:桥接上网,NAT上网,单主机模式[没用过].本节从原理和操作2个方面讲了NAT方式和桥接方式这2种不同的虚拟机 ...

  7. spring boot中,jar包、war包的区别

    jar包.war包 比较(表格) 项目 jar包 war包 在开发调试完成之后,可以将应用打成JAR包的形式,可以直接使用Maven插件的package命令,最终会形成一个可运行的 JAR包.我们使用 ...

  8. opencv中的滤波

    以前的时候,为了过滤图像中的一些噪点,学过一些简单的滤波,比如中值滤波,均值滤波,也是自己实现的. 在opencv中有现成的函数可以调用,实现滤波的操作. 函数的原型如下: CVAPI(void) c ...

  9. linux sh文件提示 no such file or directory

    Linux执行.sh文件,提示No such file or directory的问题的解决方法 12-06-28 16:59作者:love__coder Linux执行.sh文件,提示No such ...

  10. 静态编译opencv3.4.0

    问题: 编译了静态库之后可以不要那么多dll 解决办法: 其实和编译动态库的区别就在于: Cmake里面操作的时候,去掉下面这个选项的勾勾 BUILD_SHARED_LIBS