[py]tornado2-通过cookie保护页面
来源:互联网 发布:php登录代码 编辑:程序博客网 时间:2024/06/14 06:40
tornado2-通过cookie保护页面
相关代码git
代码逻辑关系
class IndexHandler(tornado.web.RequestHandler): def get(self,*args,**kwargs): self.render("index.html")class LoginHandler(tornado.web.RequestHandler): def post(self,*args,**kwargs): username=self.get_argument("username") passowrd=self.get_argument("password") if username == "admin" and passowrd == "admin123": self.set_cookie("auth","1") self.redirect("/manager") def get(self,*args,**kwargs): self.render("login.html")class ManagerHandler(tornado.web.RequestHandler): def get(self,*args,**kwargs): if self.get_cookie("auth")=="1": self.render("manager.html") else: self.redirect("/login")class LogoutHandler(tornado.web.RequestHandler): def get(self,*args,**kwargs): self.set_cookie("auth","0") self.redirect("/login")
manager.html<body><span><a href="/logout">退出</a></span><h1>manager page</h1></body>
功能演示
login页面提示登录失败
效果:
原理:
完整code:
逻辑处理
#!/usr/bin/env python# coding=utf-8import tornado.ioloopimport tornado.web# 业务逻辑处理模块class IndexHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): self.render("index.html")class LoginHandler(tornado.web.RequestHandler): def post(self, *args, **kwargs): username = self.get_argument("username") passowrd = self.get_argument("password") if username == "admin" and passowrd == "admin123": self.set_cookie("auth", "1") self.redirect("/manager") else: self.render("login.html",status_text="登录失败") def get(self, *args, **kwargs): self.render("login.html",status_text="")class ManagerHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): if self.get_cookie("auth") == "1": self.render("manager.html") else: self.redirect("/login")class LogoutHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): self.set_cookie("auth", "0") self.redirect("/login")# 配置选项模块settings = { 'template_path': 'template', 'static_path': 'statics', 'static_url_prefix': '/sss/',}# 路由模块application = tornado.web.Application([ (r"/index", IndexHandler), (r"/manager", ManagerHandler), (r"/login", LoginHandler), (r"/logout", LogoutHandler),], **settings)## wsgi模块if __name__ == "__main__": application.listen(8888) tornado.ioloop.IOLoop.instance().start()
前端页面
<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>login</title> <link rel="stylesheet" href="{{ static_url("common.css") }}"></head><body><form action="/login" method="post"> <input type="text" name="username"> <input type="password" name="password"> <input type="submit" value="提交"> <span style="color: red">{{ status_text }}</span></form></body></html>
实现cookie超时,重新登录; 实现7天免登陆
效果:
原理:
class LoginHandler(tornado.web.RequestHandler): def post(self, *args, **kwargs): username = self.get_argument("username") passowrd = self.get_argument("password") if username == "admin" and passowrd == "admin123": r = time.time()+5 ## 设置5s超时 self.set_cookie("auth", "1",expires=r) self.redirect("/manager") else: self.render("login.html",status_text="登录失败") def get(self, *args, **kwargs): self.render("login.html",status_text="")
实现7天免登陆
原理
代码:
#!/usr/bin/env python# coding=utf-8import timeimport tornado.ioloopimport tornado.web# 业务逻辑处理模块class IndexHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): self.render("index.html")class LoginHandler(tornado.web.RequestHandler): def post(self, *args, **kwargs): username = self.get_argument("username","None") passowrd = self.get_argument("password","None") check = self.get_argument("auto","None") if username == "admin" and passowrd == "admin123": if check: self.set_cookie("auth", "1", expires_days=7) else: r = time.time()+5 self.set_cookie("auth", "1",expires_days=r) self.redirect("/manager") else: self.render("login.html",status_text="登录失败") def get(self, *args, **kwargs): self.render("login.html",status_text="")class ManagerHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): if self.get_cookie("auth") == "1": self.render("manager.html") else: self.redirect("/login")class LogoutHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): self.set_cookie("auth", "0") self.redirect("/login")# 配置选项模块settings = { 'template_path': 'template', 'static_path': 'statics', 'static_url_prefix': '/sss/',}# 路由模块application = tornado.web.Application([ (r"/index", IndexHandler), (r"/manager", ManagerHandler), (r"/login", LoginHandler), (r"/logout", LogoutHandler),], **settings)## wsgi模块if __name__ == "__main__": application.listen(8888) tornado.ioloop.IOLoop.instance().start()
<!doctype html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>login</title> <link rel="stylesheet" href="{{ static_url("common.css") }}"></head><body><form action="/login" method="post"> <input type="text" name="username"> <input type="password" name="password"> <input type="submit" value="登录"> <input type="checkbox" name = "auto" value="1"><span>7天免登录</span> <span style="color: red">{{ status_text }}</span></form></body></html>
安全的cookie
class LoginHandler(tornado.web.RequestHandler): def post(self, *args, **kwargs): username = self.get_argument("username","None") passowrd = self.get_argument("password","None") check = self.get_argument("auto","None") if username == "admin" and passowrd == "admin123": if check: self.get_secure_cookie() self.set_cookie("auth", "1", expires_days=7) else: r = time.time()+5 self.set_cookie("auth", "1",expires_days=r) self.redirect("/manager") else: self.render("login.html",status_text="登录失败") def get(self, *args, **kwargs): self.render("login.html",status_text="")
# 配置选项模块settings = { 'template_path': 'template', 'static_path': 'statics', 'static_url_prefix': '/sss/', 'cookie_secret':'adfadsfasdfadf',}
代码github地址
阅读全文
0 0
- [py]tornado2-通过cookie保护页面
- 通过cookie访问页面
- py操作cookie
- [py]图解cookie&session
- [py]tornado诠释cookie
- 什么是栈cookie保护?
- (ASP.NET)通过Cookie对象实现页面访问计数功能。
- 通过cookie记录,设置页面访问的跳转页
- 登录页面通过cookie实现保用用户名的功能
- Webmagic 爬虫之通过cookie进行页面登录
- web.py的 cookie和session
- tornado2.2 IDE设置
- Tornado2.2安装步骤
- web页面操作cookie
- JS操作页面cookie
- js设置页面cookie
- js 页面操作cookie
- Cookie页面传值
- 欢迎使用CSDN-markdown编辑器
- lua if else end
- Socket 绑定异常 解决方案
- 如何在32位程序中突破地址空间限制使用超过4G的内存
- log日志输出用处用法等
- [py]tornado2-通过cookie保护页面
- 进程创建过程详解 CreateProcess
- dubbo 创建服务代理
- 软件版本号命名规范
- Linux安装My SQL 一步到位
- C语言程序设计基础——汉字的倒置
- Spring 整合 Redis
- Jenkins插件的下载及安装
- 使用ssm框架的java项目由mysql转oracle遇到问题