使用tornado框架簡單記錄瀏覽器cookie
阿新 • • 發佈:2019-01-30
Views->login.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="/login" method="post"> <input type="text" name="username"> <input type="password" name="password"> <input type="checkbox" name="auto" value="1">7天免登入 <input type="submit" value="登入"> <span style="color: red">{{status_text}}</span> </form> </body> </html>
Views->manager.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<a href="/logout">退出</a>
<h1>銀行卡餘額:-1000</h1>
</body>
</html>
Views->index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>cookie</title> </head> <body> <h1>首頁</h1> </body> </html>
index.py
import tornado.ioloop import tornado.web import time class IndexHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): self.render('index.html') class LoginHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): self.render('login.html', status_text="") def post(self, *args, **kwargs): username = self.get_argument('username', None) pwd = self.get_argument('password', None) check = self.get_argument('auto', None) if username == 'alex' and pwd == 'sb': if check: self.set_cookie('auth','1',expires_days=7) else: r = time.time() + 10 self.set_cookie('auth', '1', expires=r) self.redirect('/manager') else: self.render('login.html', status_text="登入失敗") class ManagerHandler(tornado.web.RequestHandler): def get(self, *args, **kwargs): co = self.get_cookie('auth') if co == '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": "views", # 模板路徑的配置 } application = tornado.web.Application([ (r"/index", IndexHandler), (r"/login", LoginHandler), (r"/manager", ManagerHandler), (r"/logout", LogoutHandler), ], **settings) if __name__ == "__main__": application.listen(8888) tornado.ioloop.IOLoop.instance().start()
執行結果: