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内建数据结构详解
Feb 03 Python
python实现各进制转换的总结大全
Jun 18 Python
python爬虫获取多页天涯帖子
Feb 23 Python
python爬虫_实现校园网自动重连脚本的教程
Apr 22 Python
快速解决pandas.read_csv()乱码的问题
Jun 15 Python
Python设计模式之迭代器模式原理与用法实例分析
Jan 10 Python
Python求凸包及多边形面积教程
Apr 12 Python
Python用来做Web开发的优势有哪些
Aug 05 Python
Python基于mediainfo批量重命名图片文件
Dec 29 Python
python自动化测试通过日志3分钟定位bug
Nov 20 Python
python中对列表的删除和添加方法详解
Feb 24 Python
使用pd.merge表连接出现多余行的问题解决
Jun 16 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
修改了一个很不错的php验证码(支持中文)
2007/02/14 PHP
解析PHP中ob_start()函数的用法
2013/06/24 PHP
PHP封装CURL扩展类实例
2015/07/28 PHP
跨域表单提交状态的变相判断代码
2009/11/12 Javascript
可在线编辑网页文字效果代码(单击)
2013/03/02 Javascript
原生JS实现表单checkbook获取已选择的值
2013/07/21 Javascript
JavaScript中自定义事件用法分析
2014/12/23 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
2016/07/01 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
2017/03/03 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
vue弹窗插件实战代码
2018/09/08 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
浅谈React中组件逻辑复用的那些事儿
2020/05/21 Javascript
JavaScript冒泡算法原理与实现方法深入理解
2020/06/04 Javascript
Python中用memcached来减少数据库查询次数的教程
2015/04/07 Python
详解Django框架中的视图级缓存
2015/07/23 Python
python web框架中实现原生分页
2019/09/08 Python
windows下python安装pip方法详解
2020/02/10 Python
python中setuptools的作用是什么
2020/06/19 Python
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
美国儿童服装、家具和玩具精品店:Maisonette
2019/11/24 全球购物
财务出纳员岗位职责
2013/11/26 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
经理助理岗位职责
2014/03/05 职场文书
服务员态度差检讨书
2014/10/28 职场文书
培训通知
2015/04/17 职场文书
起诉状范本
2015/05/20 职场文书
交通事故被告答辩状
2015/05/22 职场文书
七一活动主持词
2015/06/29 职场文书
出纳2015年度工作总结范文
2015/10/14 职场文书
《角的度量》教学反思
2016/02/18 职场文书
Ajax请求超时与网络异常处理图文详解
2021/05/23 Javascript
Python中基础数据类型 set集合知识点总结
2021/08/02 Python