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的Flask框架中实现分页功能的教程
Apr 20 Python
Python中用于计算对数的log()方法
May 15 Python
Python Flask前后端Ajax交互的方法示例
Jul 31 Python
使用python将图片按标签分入不同文件夹的方法
Dec 08 Python
Python3按一定数据位数格式处理bin文件的方法
Jan 24 Python
python文件处理fileinput使用方法详解
Jan 02 Python
基于pytorch 预训练的词向量用法详解
Jan 06 Python
Python : turtle色彩控制实例详解
Jan 19 Python
Python实现AI自动抠图实例解析
Mar 05 Python
django 连接数据库出现1045错误的解决方式
May 14 Python
python进度条显示之tqmd模块
Aug 22 Python
详解Python之Scrapy爬虫教程NBA球员数据存放到Mysql数据库
Jan 24 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
smarty缓存用法分析
2014/12/16 PHP
ucenter通信原理分析
2015/01/09 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
深入理解JavaScript系列(8) S.O.L.I.D五大原则之里氏替换原则LSP
2012/01/15 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
JQuery页面图片切换和新闻列表滚动效果的具体实现
2013/09/26 Javascript
JavaScript中的style.cssText使用教程
2014/11/06 Javascript
jQuery的几个我们必须了解的特点
2015/05/03 Javascript
window.setInterval()方法的定义和用法及offsetLeft与style.left的区别
2015/11/11 Javascript
基于jQuery实现放大镜特效
2020/10/19 Javascript
JS函数多个参数默认值指定方法分析
2016/11/28 Javascript
vue封装第三方插件并发布到npm的方法
2017/09/25 Javascript
使用vux实现上拉刷新功能遇到的坑
2018/02/08 Javascript
Vue使用vux-ui自定义表单验证遇到的问题及解决方法
2018/05/10 Javascript
如何理解Vue的v-model指令的使用方法
2018/07/19 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
python判断字符串编码的简单实现方法(使用chardet)
2016/07/01 Python
python打包压缩、读取指定目录下的指定类型文件
2018/04/12 Python
python生成多个只含0,1元素的随机数组或列表的实例
2018/11/12 Python
python做反被爬保护的方法
2019/07/01 Python
python 抓包保存为pcap文件并解析的实例
2019/07/23 Python
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
python 输出列表元素实例(以空格/逗号为分隔符)
2019/12/25 Python
PyQt5多线程防卡死和多窗口用法的实现
2020/09/15 Python
详解向scrapy中的spider传递参数的几种方法(2种)
2020/09/28 Python
HTML块级标签汇总(小篇)
2016/07/13 HTML / CSS
数字天堂软件测试面试题
2012/12/23 面试题
大学生水文观测实习自我鉴定
2013/09/29 职场文书
关于赌博的检讨书
2014/01/24 职场文书
高二生物教学反思
2014/01/27 职场文书
实习感想范文
2015/08/10 职场文书
婚礼男方父母答谢词
2015/09/29 职场文书
浅谈Python数学建模之固定费用问题
2021/06/23 Python
Pandas搭配lambda组合使用详解
2022/01/22 Python
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android