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基础之while循环及if判断
Aug 24 Python
Python实现Dijkstra算法
Oct 17 Python
python 在指定范围内随机生成不重复的n个数实例
Jan 28 Python
Python基础学习之函数方法实例详解
Jun 18 Python
Python解决pip install时出现的Could not fetch URL问题
Aug 01 Python
python实现多进程按序号批量修改文件名的方法示例
Dec 30 Python
PySide2出现“ImportError: DLL load failed: 找不到指定的模块”的问题及解决方法
Jun 10 Python
Python基于Serializer实现字段验证及序列化
Nov 04 Python
记一次python 爬虫爬取深圳租房信息的过程及遇到的问题
Nov 24 Python
浅谈盘点5种基于Python生成的个性化语音方法
Feb 05 Python
python实现简单的名片管理系统
Apr 26 Python
Python 装饰器(decorator)常用的创建方式及解析
Apr 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
php json_encode()函数返回json数据实例代码
2014/10/10 PHP
php几个预定义变量$_SERVER用法小结
2014/11/07 PHP
Yii2实现让关联字段支持搜索功能的方法
2016/08/10 PHP
jQuery数据缓存功能的实现思路及简单模拟
2013/05/27 Javascript
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
实用又漂亮的BootstrapValidator表单验证插件
2016/05/30 Javascript
JavaScript闭包和范围实例详解
2016/12/19 Javascript
微信小程序 switch组件详解及简单实例
2017/01/10 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
2017/08/30 Javascript
vue使用axios时关于this的指向问题详解
2017/12/22 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
react-native动态切换tab组件的方法
2018/07/07 Javascript
JavaScript基础之静态方法和实例方法分析
2018/12/26 Javascript
微信小程序开发之点击按钮退出小程序的实现方法
2019/04/26 Javascript
JS中比Switch...Case更优雅的多条件判断写法
2019/09/05 Javascript
在Vue里如何把网页的数据导出到Excel的方法
2020/09/30 Javascript
python中解析json格式文件的方法示例
2017/05/03 Python
Python Json模块中dumps、loads、dump、load函数介绍
2018/05/15 Python
python如何生成网页验证码
2018/07/28 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
对Django中内置的User模型实例详解
2019/08/16 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
哈萨克斯坦移动和数字技术在线商店:SatelOnline.kz
2020/09/04 全球购物
俄语翻译实习生的自我评价分享
2013/11/06 职场文书
人事助理自荐信
2014/02/02 职场文书
国际贸易专业个人职业生涯规划
2014/02/15 职场文书
法学专业毕业生求职信
2014/06/12 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
中学生打架检讨书
2014/10/13 职场文书
关于运动会广播稿50字
2014/10/18 职场文书
教师党员整改措施
2014/10/24 职场文书
被告代理词范文
2015/05/25 职场文书
MongoDB数据库常用的10条操作命令
2021/06/18 MongoDB
Android Studio 计算器开发
2022/05/20 Java/Android