当前位置:首页 > Web开发 > 正文

tornado之cookie

2024-03-31 Web开发

cookie的本质其实就是在浏览器端保存的键值对, 每当浏览器端发送一次请求, 都会将这些键值对附加在请求中并发送给服务器端。

一、目录结构

技术图片

二、main_pro.py

1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 import tornado.ioloop 5 import tornado.web 6 7 8 class IndexHandler(tornado.web.RequestHandler): 9 def get(self, *args, **kwargs): 10 # self.write("Hello, world") 11 t = self.get_cookie(auth) 12 if t == 1: 13 self.render(index.html) 14 else: 15 self.redirect(/login) 16 17 class LogoutHandler(tornado.web.RequestHandler): 18 def get(self, *args, **kwargs): 19 # self.write("Hello, world") 20 self.set_cookie(auth, 0) #退出登录,将cookie信息清空 21 self.redirect(/login) 22 23 24 class LoginHandler(tornado.web.RequestHandler): 25 def get(self, *args, **kwargs): 26 # self.write("Hello, world") 27 self.render(login.html, status_text=‘‘) 28 29 30 def post(self, *args, **kwargs): 31 username = self.get_argument(username, None) 32 pwd = self.get_argument(password, None) 33 if username == yusheng_liang and pwd == adm: 34 self.set_cookie(auth, 1) #登录谁成功,设置cookie信息 35 self.redirect(/index) 36 else: 37 self.render(login.html, status_text=登录失败) 38 settings = { 39 template_path: views, #视图模板路径 40 static_path: static, #静态文件路径 41 } 42 43 #路由映射,路由系统 44 def make_app(): 45 return tornado.web.Application([ 46 (r"/login", LoginHandler), 47 (r"/index", IndexHandler), 48 (r"/logout", LogoutHandler), 49 ], **settings) 50 51 if __name__ == "__main__": 52 app = make_app() 53 app.listen(8888) 54 tornado.ioloop.IOLoop.current().start()

技术图片

1)self.set_cookie(‘name‘, ‘test‘) 设置未加密的cookie, 键为‘name‘, 值为test

2)self.set_secure_cookie(‘user‘, ‘test‘) 设置加密cookie, 键为‘user‘, 值为test. 设置加密cookie我们需要在配置中添加自定义的加密串(俗称对加密结果加盐)"cookie_secret": ‘test-secret,‘

3)name = self.get_cookie(‘name‘, None)获取指定key未加密的cookie的值

4)user = self.get_cookie(‘user‘, None) 获取指定key的加密后的cookie的值

5)对于set_cookie()和set_secure_cookie()都用以下常见参数value 表示传入cookie的name对应的值name 表示传入cookie的键

6)domain=None 表示域名

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/40291.html