web框架--tornado之cookie

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

一、目录结构

web框架--tornado之cookie

二、main_pro.py

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import tornado.ioloop
import tornado.web


class IndexHandler(tornado.web.RequestHandler):
    def get(self, *args, **kwargs):
        # self.write("Hello, world")
        t = self.get_cookie(‘auth‘)
        if t == ‘1‘:
            self.render(‘index.html‘)
        else:
            self.redirect(‘/login‘)

class LogoutHandler(tornado.web.RequestHandler):
    def get(self, *args, **kwargs):
        # self.write("Hello, world")
        self.set_cookie(‘auth‘, ‘0‘)  #退出登录,将cookie信息清空
        self.redirect(‘/login‘)


class LoginHandler(tornado.web.RequestHandler):
    def get(self, *args, **kwargs):
        # self.write("Hello, world")
        self.render(‘login.html‘, status_text=‘‘)


    def post(self, *args, **kwargs):
        username = self.get_argument(‘username‘, None)
        pwd = self.get_argument(‘password‘, None)
        if username == ‘yusheng_liang‘ and pwd == ‘adm‘:
            self.set_cookie(‘auth‘, ‘1‘)  #登录谁成功,设置cookie信息
            self.redirect(‘/index‘)
        else:
            self.render(‘login.html‘, status_text=‘登录失败‘)
settings = {
    ‘template_path‘: ‘views‘,  #视图模板路径
    ‘static_path‘: ‘static‘,   #静态文件路径
}

#路由映射,路由系统
def make_app():
    return tornado.web.Application([
        (r"/login", LoginHandler),
        (r"/index", IndexHandler),
        (r"/logout", LogoutHandler),
    ], **settings)

if __name__ == "__main__":
    app = make_app()
    app.listen(8888)
    tornado.ioloop.IOLoop.current().start()

web框架--tornado之cookie

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 表示传入cookiename对应的值name 表示传入cookie的键

6)domain=None 表示域名

7)expires=None 设置过期时间, 这里单位为秒

path="/" 表示当前的cookie在那些路径下有效, /表示当前域名下所有的路径均有效

expires_days=None 设置过期时间, 单位为天