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 相关文章推荐
pycharm 使用心得(四)显示行号
Jun 05 Python
python刷投票的脚本实现代码
Nov 08 Python
Python备份目录及目录下的全部内容的实现方法
Jun 12 Python
Python 爬虫学习笔记之单线程爬虫
Sep 21 Python
Python解析json之ValueError: Expecting property name enclosed in double quotes: line 1 column 2(char 1)
Jul 06 Python
一份python入门应该看的学习资料
Apr 11 Python
对Python模块导入时全局变量__all__的作用详解
Jan 11 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
Apr 05 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
Python 使用 prettytable 库打印表格美化输出功能
Dec 26 Python
Python逐行读取文件内容的方法总结
Feb 14 Python
Python3 shelve对象持久存储原理详解
Mar 23 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支持页面回退的两种方法
2008/01/10 PHP
php中使用session防止用户非法登录后台的方法
2015/01/27 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
2015/10/13 PHP
Yii2 加载css、js 载静态资源的方法
2017/03/10 PHP
PHP从零开始打造自己的MVC框架之路由类实现方法分析
2019/06/03 PHP
javascript 面向对象,实现namespace,class,继承,重载
2009/10/29 Javascript
JavaScript DOM学习第四章 getElementByTagNames
2010/02/19 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
利用js实现前台动态添加文本框,后台获取文本框内容(示例代码)
2013/11/25 Javascript
jQuery使用元素属性attr赋值详解
2015/02/27 Javascript
jQuery抛物线运动实现方法(附完整demo源码下载)
2016/01/08 Javascript
只需五句话搞定JavaScript作用域(经典)
2016/07/26 Javascript
JS对象创建的几种方式整理
2017/02/28 Javascript
Angular中实现树形结构视图实例代码
2017/05/05 Javascript
mpvue写一个CPASS小程序的示例
2018/09/04 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
vuejs简单验证码功能完整示例
2019/01/08 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
Taro UI框架开发小程序实现左滑喜欢右滑不喜欢效果的示例代码
2020/05/18 Javascript
OpenLayers实现图层切换控件
2020/09/25 Javascript
Python实现多线程下载文件的代码实例
2014/06/01 Python
Python多线程编程(六):可重入锁RLock
2015/04/05 Python
Python中用Spark模块的使用教程
2015/04/13 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
python re.sub()替换正则的匹配内容方法
2019/07/22 Python
使用Python串口实时显示数据并绘图的例子
2019/12/26 Python
将自己的数据集制作成TFRecord格式教程
2020/02/17 Python
用python发送微信消息
2020/12/21 Python
Lenox官网:精美的瓷器&独特的礼品
2017/02/12 全球购物
销售行业个人求职自荐信
2013/09/25 职场文书
函授本科自我鉴定
2013/11/03 职场文书
2014年商场工作总结
2014/11/22 职场文书
2014个人年终工作总结范文
2014/12/15 职场文书
二手车转让协议书
2015/01/29 职场文书
排查Tomcat进程假死的问题
2022/05/06 Servers
js前端面试常见浏览器缓存强缓存及协商缓存实例
2022/06/21 Javascript