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 相关文章推荐
30分钟搭建Python的Flask框架并在上面编写第一个应用
Mar 30 Python
浅谈Python中列表生成式和生成器的区别
Aug 03 Python
Python中规范定义命名空间的一些建议
Jun 04 Python
Python模拟三级菜单效果
Sep 11 Python
Python的地形三维可视化Matplotlib和gdal使用实例
Dec 09 Python
Python+matplotlib绘制不同大小和颜色散点图实例
Jan 19 Python
python简单实现操作Mysql数据库
Jan 29 Python
python清除字符串前后空格函数的方法
Oct 21 Python
Python turtle库绘制菱形的3种方式小结
Nov 23 Python
使用python实现多维数据降维操作
Feb 24 Python
Python并发concurrent.futures和asyncio实例
May 04 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
Jan 27 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 读取和编写 XML
2014/11/19 PHP
php魔法函数与魔法常量使用介绍
2017/07/23 PHP
php 的多进程操作实践案例分析
2020/02/28 PHP
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
JavaScript DOM事件(笔记)
2015/04/08 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
功能强大的Bootstrap组件(结合js)
2016/08/03 Javascript
Vue的H5页面唤起支付宝支付功能
2019/04/18 Javascript
vue实现百度语音合成的实例讲解
2019/10/14 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
uniapp 仿微信的右边下拉选择弹出框的实现代码
2020/07/12 Javascript
JavaScript日期库date-fn.js使用方法解析
2020/09/09 Javascript
[00:12]2018DOTA2亚洲邀请赛 Somnus丶M出阵单挑
2018/04/06 DOTA
如何解决django配置settings时遇到Could not import settings 'conf.local'
2014/11/18 Python
Python自定义类的数组排序实现代码
2016/08/28 Python
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
使用Python对SQLite数据库操作
2017/04/06 Python
python3+PyQt5实现支持多线程的页面索引器应用程序
2018/04/20 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
Python 列表的清空方式
2020/01/13 Python
Python3.9又更新了:dict内置新功能
2020/02/28 Python
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
.net工程师笔试题
2012/06/09 面试题
大三学生做职业规划:给未来找个方向
2014/02/24 职场文书
《狼》教学反思
2014/03/02 职场文书
租赁协议书范本
2014/04/22 职场文书
端午节演讲稿
2014/05/23 职场文书
品质标语大全
2014/06/21 职场文书
119消防日活动总结
2014/08/29 职场文书
长城导游词400字
2015/01/30 职场文书
陕西导游词
2015/02/04 职场文书
酒店辞职书范文
2015/02/26 职场文书
2015仓库保管员年终工作总结
2015/05/13 职场文书
离婚代理词范文
2015/05/23 职场文书