python使用tornado实现登录和登出


Posted in Python onJuly 28, 2018

本文实例为大家分享了tornado实现登录和登出的具体代码,供大家参考,具体内容如下

main.py如下:

import tornado.httpserver
import tornado.ioloop
import tornado.web
import tornado.options
import os.path
 
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
 
class BaseHandler(tornado.web.RequestHandler):
  def get_current_user(self):
    return self.get_secure_cookie("username")
class LoginHandler(BaseHandler):
  def get(self):
    self.render('login.html')
  def post(self):
    self.set_secure_cookie("username", self.get_argument("username"))
    self.redirect("/")
class WelcomeHandler(BaseHandler):
  @tornado.web.authenticated
  def get(self):
    self.render('index.html', user=self.current_user)
 
class LogoutHandler(BaseHandler):
  def post(self):
    if (self.get_argument("logout", None)):
      self.clear_cookie("username")
    self.redirect("/")
if __name__ == "__main__":
  tornado.options.parse_command_line()
  settings = {
    "template_path": os.path.join(os.path.dirname(__file__), "templates"),
    "cookie_secret": "bZJc2sWbQLKos6GkHn/VB9oXwQt8S0R0kRvJ5/xJ89E=",
    "login_url": "/login"
  }
  application = tornado.web.Application([
    (r'/', WelcomeHandler),
    (r'/login', LoginHandler),
    (r'/logout', LogoutHandler)
  ],debug= True,**settings)
  http_server = tornado.httpserver.HTTPServer(application)
  http_server.listen(options.port)
  tornado.ioloop.IOLoop.instance().start()

index.html

<html>
<head>
</head>
<body>
 <p>Hello {{ user }}</p>
 <form action="/logout?logout=1" method="post">
 <input type="submit" value="Log out"></br>
</body>
</html>

login.html

<html>
<head>
</head>
<body>
 <h>Login Page</h>
 <form action="/login" method="post">Name:<input type="text" name="username"></br>
 <input type="submit" value="Sign in"></br>
 </form>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python批量生成本地ip地址的方法
Mar 23 Python
python中global用法实例分析
Apr 30 Python
Python中第三方库Requests库的高级用法详解
Mar 12 Python
Python函数式编程
Jul 20 Python
对Python中gensim库word2vec的使用详解
May 08 Python
python itchat给指定联系人发消息的方法
Jun 11 Python
python加载自定义词典实例
Dec 06 Python
python生成大写32位uuid代码
Mar 03 Python
Python检测端口IP字符串是否合法
Jun 05 Python
python时间序列数据转为timestamp格式的方法
Aug 03 Python
浅谈Python列表嵌套字典转化的问题
Apr 07 Python
pycharm debug 断点调试心得分享
Apr 16 Python
基于python实现简单日历
Jul 28 #Python
python使用tcp实现局域网内文件传输
Mar 20 #Python
基于python3实现socket文件传输和校验
Jul 28 #Python
python多进程实现文件下载传输功能
Jul 28 #Python
python如何生成网页验证码
Jul 28 #Python
python3利用tcp实现文件夹远程传输
Jul 28 #Python
python使用tornado实现简单爬虫
Jul 28 #Python
You might like
新浪新闻小偷
2006/10/09 PHP
PHP新手NOTICE错误常见解决方法
2011/12/07 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
2012/02/05 PHP
克隆一个新项目的快捷方式
2013/04/10 PHP
一个很简单的办法实现TD的加亮效果.
2006/06/29 Javascript
javascript背投广告代码的完善
2008/04/08 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
JavaScript基础篇(6)之函数表达式闭包
2015/12/11 Javascript
js基础之DOM中元素对象的属性方法详解
2016/10/28 Javascript
vue 虚拟dom的patch源码分析
2018/03/01 Javascript
JS获取url参数,JS发送json格式的POST请求方法
2018/03/29 Javascript
详解promise.then,process.nextTick, setTimeout 以及 setImmediate的执行顺序
2018/11/21 Javascript
基于vue.js组件实现分页效果
2018/12/29 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
easy_install python包安装管理工具介绍
2013/02/10 Python
Python标准库内置函数complex介绍
2014/11/25 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
python中threading开启关闭线程操作
2020/05/02 Python
Python3获取cookie常用三种方案
2020/10/05 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
python爬取抖音视频的实例分析
2021/01/19 Python
美国第二大团购网站:LivingSocial
2016/07/24 全球购物
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
总经理办公室主任岗位职责
2013/11/12 职场文书
环保倡议书
2014/04/14 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
烹饪大赛策划方案
2014/05/26 职场文书
2014年个人技术工作总结
2014/12/08 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
2015婚礼主持词开场白
2015/05/28 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL