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字符串的encode与decode研究心得乱码问题解决方法
Mar 23 Python
一些Python中的二维数组的操作方法
May 02 Python
详解Python中使用base64模块来处理base64编码的方法
Jul 01 Python
深入理解Django的自定义过滤器
Oct 17 Python
在Python中居然可以定义两个同名通参数的函数
Jan 31 Python
python学生管理系统学习笔记
Mar 19 Python
一篇文章彻底搞懂Python中可迭代(Iterable)、迭代器(Iterator)与生成器(Generator)的概念
May 13 Python
Python交互式图形编程的实现
Jul 25 Python
python同义词替换的实现(jieba分词)
Jan 21 Python
Python基于正则表达式实现计算器功能
Jul 13 Python
使用python爬取抖音app视频的实例代码
Dec 01 Python
详解Python生成器和基于生成器的协程
Jun 03 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小技巧 把数组的键和值交换形成了新的数组,查找值取得键
2011/06/02 PHP
CodeIgniter使用phpcms模板引擎
2013/11/12 PHP
PHP+MySQL实现的简单投票系统实例
2016/02/24 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
Javascript打印网页部分内容的脚本
2008/11/17 Javascript
捕获关闭窗口的脚本
2009/01/10 Javascript
jquery通过a标签删除table中的一行的代码
2013/12/02 Javascript
Javascript中常见的校验如域名、手机、邮箱等等
2014/01/02 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
Ajax实现不刷新取最新商品
2017/03/01 Javascript
slideToggle+slideup实现手机端折叠菜单效果
2017/05/25 Javascript
帝国cms首页列表页实现点赞功能
2017/10/30 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
Vue中对拿到的数据进行A-Z排序的实例
2018/09/25 Javascript
使用Vue中 v-for循环列表控制按钮隐藏显示功能
2019/04/23 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
详解微信小程序工程化探索之webpack实战
2020/04/20 Javascript
jQuery实现异步上传一个或多个文件
2020/08/17 jQuery
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
2021/01/08 Vue.js
Python中map和列表推导效率比较实例分析
2015/06/17 Python
Python实现周期性抓取网页内容的方法
2015/11/04 Python
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
解决django前后端分离csrf验证的问题
2019/02/03 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
Python通过socketserver处理多个链接
2020/03/18 Python
Python reques接口测试框架实现代码
2020/07/28 Python
详解如何用canvas画一个微笑的表情
2019/03/14 HTML / CSS
汽车检测与维修个人求职信
2013/09/24 职场文书
中国梦的演讲稿
2014/01/08 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
大学生个人总结范文
2015/02/15 职场文书
医德医风学习心得体会
2016/01/25 职场文书
《半截蜡烛》教学反思
2016/02/19 职场文书
JavaScript 防篡改对象的用法示例
2021/04/24 Javascript
python 爬取京东指定商品评论并进行情感分析
2021/05/27 Python
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫