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获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
Python HTTP客户端自定义Cookie实现实例
Apr 28 Python
Python 关于反射和类的特殊成员方法
Sep 14 Python
Python中一些不为人知的基础技巧总结
May 19 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
Jul 27 Python
python如何以表格形式打印输出的方法示例
Jun 21 Python
python实现复制大量文件功能
Aug 31 Python
Python实现TCP通信的示例代码
Sep 09 Python
Pytorch根据layers的name冻结训练方式
Jan 06 Python
python字典key不能是可以是啥类型
Aug 04 Python
python如何实时获取tcpdump输出
Sep 16 Python
python如何快速拼接字符串
Oct 28 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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
2013/06/02 PHP
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
PHP简单生成缩略图相册的方法
2015/07/29 PHP
PHP进程通信基础之信号量与共享内存通信
2017/02/19 PHP
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
再谈querySelector和querySelectorAll的区别与联系
2012/04/20 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
2013/09/22 Javascript
jQuery中animate动画第二次点击事件没反应
2015/05/07 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
2016/04/26 Javascript
页面向下滚动ajax获取数据的实现方法(兼容手机)
2016/05/24 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
Vue+ElementUI实现表单动态渲染、可视化配置的方法
2018/03/07 Javascript
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
Python常用的日期时间处理方法示例
2015/02/08 Python
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
Python实现自动访问网页的例子
2020/02/21 Python
Python如何把Spark数据写入ElasticSearch
2020/04/18 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
2016/01/27 HTML / CSS
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
写好求职信第一句话的技巧
2013/10/26 职场文书
《最后的姿势》教学反思
2014/02/27 职场文书
三八妇女节超市活动方案
2014/08/18 职场文书
个人剖析材料及整改措施
2014/10/07 职场文书
九九重阳节标语
2014/10/07 职场文书
师德标兵事迹材料
2014/12/19 职场文书
经典导游欢迎词
2015/01/26 职场文书
2015年青年志愿者协会工作总结
2015/04/27 职场文书
纪检监察立案决定书
2015/06/24 职场文书
pandas求平均数和中位数的方法实例
2021/08/04 Python