2.7版本的一个简单的框架

  1. from wsgiref.simple_server import make_server
  2.  
  3. def new():
  4. return 'new'
  5. def index():
  6. return 'index'
  7.  
  8. urls={'/new':new,
  9. '/index':index
  10. }
  11.  
  12. def Runserver(environ,start_response):
  13. start_response('200 OK',[('Content-Type','text/html')])
  14. url=environ['PATH_INFO']
  15. if url in urls.keys():
  16. ret=urls[url]()
  17. else:
  18. ret=''
  19. return ret
  20.  
  21. if __name__=="__main__":
  22. httpd=make_server('',8000,Runserver)
  23. httpd.serve_forever()

一个简单的tornado脚本

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. import tornado.ioloop
  4. import tornado.web
  5.  
  6. is_login=False
  7.  
  8. class IndexHandler(tornado.web.RequestHandler):
  9. def get(self):
  10. self.render('index.html')
  11.  
  12. class LoginHandler(tornado.web.RequestHandler):
  13. def get(self, *args, **kwargs):
  14. self.render('login.html',status='')
  15.  
  16. def post(self, *args, **kwargs):
  17. username = self.get_argument('username',None)
  18. password = self.get_argument('password',None)
  19. if username == 'dalong' and password == "":
  20. self.set_cookie('auth', '')
  21. self.redirect('/manager')
  22. else:
  23. self.render('login.html',status='登陆失败')
  24. class ManagerHandler(tornado.web.RequestHandler):
  25. def get(self,*args, **kwargs):
  26. co=self.get_cookie('auth')
  27. print(co)
  28. if co=='':
  29. self.render('manager.html')
  30. else:
  31. self.redirect('/login')
  32.  
  33. class LogoutHandler(tornado.web.RequestHandler):
  34. def get(self,*args, **kwargs):
  35. self.set_cookie('auth','')
  36. self.redirect('/login')
  37.  
  38. settings = {
  39. 'template_path': 'views', # 模板路径的配置
  40. }
  41.  
  42. # 路由映射,路由系统
  43. application = tornado.web.Application([
  44. # (r"/index", MainHandler),
  45. (r"/index", IndexHandler),
  46. (r"/login", LoginHandler),
  47. (r"/manager", ManagerHandler),
  48. (r"/logout", LogoutHandler),
  49. ], **settings)
  50.  
  51. if __name__ == "__main__":
  52. # socket运行起来
  53. application.listen(8888)
  54. tornado.ioloop.IOLoop.instance().start()

初始tornado框架的更多相关文章

  1. python tornado框架实现CRUD

    1.本例采用postgresql数据库,创建数据表 user_tbl ),signup_date date); 2.webapi接口 (1)tornado框架配置 t_tornado.py #-*- ...

  2. python运维开发(二十三)---tornado框架

    内容目录: 路由系统 模板引擎 cookie 加密cookie 自定义api 自定义session 自定义form表单验证 异步非阻塞 web聊天室实例 路由系统 路由系统其实就是 url 和 类 的 ...

  3. python运维开发(二十二)---JSONP、瀑布流、组合搜索、多级评论、tornado框架简介

    内容目录: JSONP应用 瀑布流布局 组合搜索 多级评论 tornado框架简介 JSONP应用 由于浏览器存在同源策略机制,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性. ...

  4. Tornado框架简介

    -------------------简介------------------- 1.概念:     Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器 ...

  5. tornado框架源码分析---Application类之debug参数

    先贴上Application这个类的源码. class Application(httputil.HTTPServerConnectionDelegate): """A ...

  6. Tornado框架配置使用Jinja2模板引擎

    安装jinja2包 pip install jinja2 定义继承tornado.web.RequestHandler的子类BaseHandler.如果请求处理类继承这个类将会使用jinja模板引擎: ...

  7. tornado框架学习及借用有道翻译api做自动翻译页面

    趁着这几天有时间,就简单的学了一下tornado框架,简单做了个自动翻译的页面 仅为自己学习参考,不作其他用途 文件夹目录结构如下: . ├── server.py ├── static │   └─ ...

  8. tornado框架&三层架构&MVC&MTV&模板语言&cookie&session

    web框架的本质其实就是socket服务端再加上业务逻辑处理, 比如像是Tornado这样的框架. 有一些框架则只包含业务逻辑处理, 例如Django, bottle, flask这些框架, 它们的使 ...

  9. 03: 自定义异步非阻塞tornado框架

    目录:Tornado其他篇 01: tornado基础篇 02: tornado进阶篇 03: 自定义异步非阻塞tornado框架 04: 打开tornado源码剖析处理过程 目录: 1.1 源码 1 ...

随机推荐

  1. Android版本判断

    尽管Android向下兼容不好,但是一个程序还是可以在多个平台上跑的.向下兼容不好,接口改变,新的平台上不能用旧的API,旧的平台更不可能用新的API,不等于一个平台需要一个APK.可以在高版本的SD ...

  2. RT-thread内核之进程间通信

    这里面见到的同步和互斥的概念非常清晰,转载自: http://www.cnblogs.com/King-Gentleman/p/4311582.html 一.进程间通信机制 rt-thread操作系统 ...

  3. VSim [a Racing-simulator by Vell001]

    VSim [a racing-simulator by vell001] This is my first project about Racing. I am a Chinese with bad ...

  4. KVM背靠Linux好乘凉

    虚拟化是走向云的第一步,同理,开源虚拟化是走向开源云的第一步.云计算所提供的产品与方案都是围绕着IT资源的新交付与消费模式.云的形式多样,私有云.公有云与混合云,无论哪种云都具有三个关键特征:虚拟化. ...

  5. Codeforces 380 简要题解

    ABC见上一篇. 感觉这场比赛很有数学气息. D: 显然必须要贴着之前的人坐下. 首先考虑没有限制的方案数.就是2n - 1(我们把1固定,其他的都只有两种方案,放完后长度为n) 我们发现对于一个限制 ...

  6. hive常见问题解决干货大全

    本人,苦心多时,历经磨难和心血,与大家共同攻克问题难关! 问题一: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive ...

  7. C++问题-无法打开某个自定义源文件

    问题经过:需要做一个工具,是在某个产品的基础上做的,所以要来了同事的代码.用VS打开后,提示如下问题.1>c1xx : fatal error C1083: 无法打开源文件:“..\..\GUX ...

  8. UVA 796 - Critical Links (求桥)

    Critical Links  In a computer network a link L, which interconnects two servers, is considered criti ...

  9. SMTP邮件服务器配置

    QQ个人邮箱使用: smtp.qq.com端口为25 密码是个人邮箱密码 QQ企业邮箱使用: smtp.exmail.qq.com端口为25 密码是邮箱密码 163邮箱使用 smtp.163.com端 ...

  10. POJ 1751 Highways (kruskal)

    题目链接:http://poj.org/problem?id=1751 题意是给你n个点的坐标,然后给你m对点是已经相连的,问你还需要连接哪几对点,使这个图为最小生成树. 这里用kruskal不会超时 ...