添加cookie
调用response.set_cookie(‘name’,’value’)
其他可选参数:
- max_age=x(seconds)
- expires=datetime
- domain=默认为当前域
- path=’/’
- secure=off/on,限制必须HTTPS连接
- httponly=on/off
from bottle import route,run,response
@route('/')
def index():
response.set_cookie('name','sunchengquan')
return 'bottle set cookie'
run(host='localhost',port=80,debug=True,reloader=True)
获取cookie
request.get_cookie(‘name’)
from bottle import route,run,response,request
@route('/')
def index():
response.set_cookie('name','sunchengquan')
return 'bottle set cookie'
@route('/getcookie')
def getcookie():
return request.get_cookie('name')
run(host='localhost',port=80,debug=True,reloader=True)
客户端保存cookie,服务器端取出它,用于跟踪用户
添加签名的cookie
对客户端保存的value值进行加密处理
response.set_cookie(‘name’,’value’,secret=’…’)
from bottle import route,run,response,request
@route('/setsign')
def setsign():
response.set_cookie('sname','sunchengquan',secret='gfdf@#$$%')
return 'bottle set signed cookie'
run(host='localhost',port=80,debug=True,reloader=True)
获取签名的cookie
from bottle import route,run,response,request
@route('/setsign')
def setsign():
response.set_cookie('sname','sunchengquan',secret='gfdf@#$$%')
return 'bottle set signed cookie'
@route('/getsign')
def getsign():
return request.get_cookie('sname',secret='gfdf@#$$%')
run(host='localhost',port=80,debug=True,reloader=True)
中文cookie问题的处理
设置普通的cookie中有中文时,使用urllib.parse.quote对其进行URL编码
获取这种cookie时:用urllib.parse.unquote对其进行URL解码。
from urllib.parse import quote,unquote
from bottle import route,run,response,request
@route('/')
def index():
response.set_cookie('name','sunchengquan')
response.set_cookie('myname', quote('孙权'))
return 'bottle set cookie'
@route('/getcookie')
def getcookie():
return unquote(request.get_cookie('myname'))
run(host='localhost',port=80,debug=True,reloader=True)
设置签名的cookie则直接使用
@route('/setzhcookie')
def setzh():
response.set_cookie('yourname','我',secret='hdfjgh%^&**')
return 'bottle set signed cookie'
@route('/getzhcookie')
def getzh():
return request.get_cookie('yourname',secret='hdfjgh%^&**')