tornado 初解
对于使用习惯Django的我来说,tornado实在是很简陋,没有那么多复杂的文件分类。
在tornado中,一个简单web只需要十几行简单的代码就OK了
import tornado.web
import tornado.ioloop class IndexHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs):
self.write("hello") settings = {}
app = tornado.web.Application([
('/index', IndexHandler),
], **settings) if __name__ == "__main__":
app.listen('')
tornado.ioloop.IOLoop.instance().start()
看见莫有,简单吧。。。
一个app做路由映射,一个class作为逻辑处理(对应映射的逻辑处理),通过tornado的IOLoop启动web服务。还有就是一些默认路劲的配置,写在settings中就可以了。例如: settings = {"template_path": 'views'}
注意1:在类的get方法中,不用写return,如果self.write()后面还有代码的话,它还会继续往下执行,如果不需要执行的话,那就使用return就行,就不会继续往下执行了。在tornado中三个返回的方法 write,render,redirect分别对应Django的HTTPResponse,render,redirect
注意2:如果render返回了参数,在模板中与Django一样用{{ }}获取参数,但是tornado如果模板中使用的参数调用的话,在后端逻辑必须返回那个参数,否则就会报错。Django不一样,后端没有返回,前端调用不会出错。
在逻辑类里面,get()对应get请求,post对应post请求,通过使用
self.get_cookie() # 获取cookies tornado中没有session,可以通过cookie保存信息
self.get_argument() # 获取请求参数
。。。。 注意3:在设置cookie时如果是加密的,那么需要在settings中配置'cookie_secret': 'ahsfkasjasfasd', 而且设置cookie,必须在使用write,render,redirect之前,否则不能设置上cookie
tornado 初解的更多相关文章
- Python(九)Tornado web 框架
一.简介 Tornado 是 FriendFeed 使用的可扩展的非阻塞式 web 服务器及其相关工具的开源版本.这个 Web 框架看起来有些像web.py 或者 Google 的 webapp,不过 ...
- 使用tornado,我们可以做什么?
以下介绍都是建立在python2.x的基础上面,tornado使用任意版本皆可. 如果我们需要对外提供一个http server(web api)/websocket server时,我们都可以使用t ...
- tornado session
[转]tornado入门 - session cookie 和session 的区别: 1.cookie数据存放在客户的浏览器上,session数据放在服务器上. 2.cookie不是很安全,别人可以 ...
- tornado template
若果使用Tornado进行web开发可能会用到模板功能,页面继承,嵌套... 多页应用模板的处理多半依赖后端(SPA就可以动态加载局部视图),就算是RESTfull的API设计,也不妨碍同时提供部分模 ...
- tornado上手
http://www.tornadoweb.org/en/stable/ http://www.cnblogs.com/fanweibin/p/5418697.html import tornado. ...
- tornado+sqlalchemy+celery,数据库连接消耗在哪里
随着公司业务的发展,网站的日活数也逐渐增多,以前只需要考虑将所需要的功能实现就行了,当日活越来越大的时候,就需要考虑对服务器的资源使用消耗情况有一个清楚的认知. 最近老是发现数据库的连接数如果 ...
- centos 6.7 搭建tornado + nginx + supervisor的方法(已经实践)
首先,本来不想写这篇博客了,但是我测试了很多网上的例子包括简书的,全不行,我总结原因是自己太笨,搞了俩个晚上,后来决定,自己还是写一篇记录下来,保证自己以后使用 环境: centos6.7 64 py ...
- tornado中将cookie值设置为json字符串
不熟悉,找了很久,能FQ的话, https://groups.google.com/forum/#!topic/python-tornado/9Y--NgwjP_w 2楼有解释. tornado.es ...
- tornado 异步调用系统命令和非阻塞线程池
项目中异步调用 ping 和 nmap 实现对目标 ip 和所在网关的探测 Subprocess.STREAM 不用担心进程返回数据过大造成的死锁, Subprocess.PIPE 会有这个问题. i ...
随机推荐
- dbvisual 9 使用自定义jdk版本运行
dbvisual 9 不支持jdk1.8 ,当系统默认的jdk是1.8且不方便修改时,可以自行指定运行dbvisual9.2 的jdk版本 打开dbvisgui.bat 将set JAVA_EXEC= ...
- Taro 多端开发的正确姿势:打造三端统一的网易严选(小程序、H5、React Native)
笔者所在的趣店 FED 早在去年 10 月份就已全面使用 Taro 框架开发小程序(当时版本为 1.1.0-beta.4),至今也上线了 2 个微信小程序.2 个支付宝小程序. 之所以选用 Taro, ...
- HTTP/2协议–特性扫盲篇
HTTP/2协议–特性扫盲篇 随着web技术的飞速发展,1999年制定的HTTP 1.1已经无法满足大家对性能的要求,Google推出协议SPDY,旨在解决HTTP 1.1中广为人知的性能问题.SPD ...
- springboot~让我习惯了TDD的开发模式
TDD是什么 TDD就是测试驱动开发,以测试用例为主导,去开发项目,业务代码该怎么写还是怎么写,在实现UI之前,可以先实现Test用例,通过test来实现对业务场景的模拟,最终让你的代码更稳定. 大叔 ...
- 前端测试框架Jest系列教程 -- Expect(验证)
写在前面 在编写测试时,我们通常需要检查值是否满足某些条件,Jest中提供的expect允许你访问很多“Matchers”,这些“匹配器”允许您验证不同的东西. Expect 可以验证什么 Jest中 ...
- nginx部署django应用
Django部署方式有很多种,之前写过一篇部署在Apache上的博文:https://www.cnblogs.com/shenh/p/7552722.html .下文介绍的是通过Nginx来部署. N ...
- Eclipse中Maven插件的使用技巧及原理
原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6698699.html 题目有点大,这里只是自己对Maven插件的一些使用总结,可能会涉及到 ...
- 翻译:low_priority和high_priority(已提交到MariaDB官方手册)
本文为mariadb官方手册:HIGH_PRIORITY and LOW_PRIORITY的译文. 原文:https://mariadb.com/kb/en/high_priority-and-low ...
- Runtime详解(上)
这篇关于Runtime讲解参考https://juejin.im/post/593f77085c497d006ba389f0以及https://www.jianshu.com/p/6ebda3cd80 ...
- ORA-00959: tablespace 'PSAPTEMP' does not exist
错误 : ORA-00959: tablespace 'PSAPTEMP' does not exist 解决办法: CREATE TEMPORARY TABLESPACE PSAPTEMP TEM ...