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用来获得图片exif信息的库实例分析
Mar 16 Python
Python smallseg分词用法实例分析
May 28 Python
python集合用法实例分析
May 30 Python
Python数组定义方法
Apr 13 Python
Python数据结构与算法之字典树实现方法示例
Dec 13 Python
PyQt5每天必学之布局管理
Apr 19 Python
python利用Tesseract识别验证码的方法示例
Jan 21 Python
利用OpenCV和Python实现查找图片差异
Dec 19 Python
Python 实现opencv所使用的图片格式与 base64 转换
Jan 09 Python
python剪切视频与合并视频的实现
Mar 03 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
Apr 10 Python
Pytorch生成随机数Tensor的方法汇总
Sep 09 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
BBS(php &amp; mysql)完整版(四)
2006/10/09 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
老生常谈PHP 文件写入和读取(必看篇)
2017/05/22 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
2017/11/07 PHP
javascript第一课
2007/02/27 Javascript
jquery 操作日期、星期、元素的追加的实现代码
2012/02/07 Javascript
用表格输出1-1000之间的数字实现代码(附特效)
2013/04/21 Javascript
Javascript浅谈之this
2013/12/17 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
JavaScript面试开发常用的知识点总结
2016/08/08 Javascript
原生js仿浏览器滚动条效果
2017/03/02 Javascript
基于JS实现限时抢购倒计时间表代码
2017/05/09 Javascript
Bootstrap按钮组实例详解
2017/07/03 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
nodejs 如何手动实现服务器
2018/08/20 NodeJs
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
详解React 条件渲染
2020/07/08 Javascript
[01:03:36]Ti4 循环赛第三日DK vs Titan
2014/07/12 DOTA
[00:59]DOTA2英雄背景故事——上古巨神
2020/06/28 DOTA
用Python实现命令行闹钟脚本实例
2016/09/05 Python
python 开发的三种运行模式详细介绍
2017/01/18 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
Python time库基本使用方法分析
2019/12/13 Python
python连接PostgreSQL过程解析
2020/02/09 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
pytorch 模型的train模式与eval模式实例
2020/02/20 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
css3实现3D色子翻转特效
2014/12/23 HTML / CSS
html5+svg学习指南之SVG基础知识
2014/12/17 HTML / CSS
final, finally, finalize的区别
2012/03/01 面试题
师范生个人推荐信
2013/11/29 职场文书
大学毕业生的自我鉴定
2013/11/30 职场文书
个人实习生的自我评价
2014/02/16 职场文书
督导岗位职责范本
2015/04/10 职场文书
MySQL多表查询机制
2022/03/17 MySQL