Flask框架之cookie的基本设置

设置cookie

设置cookie是在Response的对象上设置。

flask.Response对象有一个set_cookie方法,可以通过这个方法来设置cookie信息。

key,value形式设置信息。


查看cookie信息

Chrome浏览器中查看cookie的方式:

方式1 借助于 开发调式工具进行查看

方式2Chrome的设置界面->高级设置->内容设置->所有cookie->找到当前域名下的cookie


删除cookie

方式1:
通过Response对象.delete_cookie,指定cookie的key,就可以删除cookie了。

方式2:
在客户端浏览器人为的删除(清除浏览器浏览历史记录后,很多网站之前免密登录的都不好使了)


设置cookie的有效期

  • max_age:以秒为单位,距离现在多少秒后cookie会过期。

  • expires:为datetime类型。这个时间需要设置为格林尼治时间,相对北京时间来说 会自动+8小时

  • 如果max_ageexpires都设置了,那么这时候以max_age为标准。

  • 默认的过期时间:如果没有显示的指定过期时间,那么这个cookie将会在浏览器关闭后过期。


from flask import Flask,request,Response 
from datetime import datetime,timedelta 

app = Flask(__name__) 

@app.route('/createCookie/') 
def createCookie(): 
	resp = Response("服务器端通过Response对象创建Cookie信息 并返回给客户端 并保存在客户端") 
	#设置Cookie的有效期【存活时间】方式1 :
	#max_age=以秒为单位【距离现在多少秒后cookie会过期】 
	resp.set_cookie('uname',"wukong",max_age=1200) 

	#设置Cookie的有效期【存活时间】方式2 : 
	#expires= datetime类型。 
	#这个时间需要设置为格林尼治时间,相对北京时间来说 会自动+8小时 
	ex = datetime(year=2019, month=2, day=28, hour=0, minute=0, second=0)
	#如果要和北京时间相同,需要减去8个小时 
	ex = datetime(year=2019, month=2, day=27, hour=16, minute=0, second=0) 
	
	resp.set_cookie('uname', "wukong", expires=ex) 
	
	#如果max_age和expires都设置了,那么这时候以max_age为标准 
	ex2 =datetime.now() + timedelta(days=30,hours=16) 
	resp.set_cookie('pwd',"123456",max_age=300,expires=ex2)
	return resp 

if __name__ == '__main__': 
app.run(debug=True)


设置cookie的有效域名

cookie默认是只能在主域名下使用。

如果想要在子域名下使用,那么应该给set_cookie传递一个参数domain='.wukong.com',这样其他子域名才能访问到这个cookie信息。

windows中的host文件设置:

127.0.0.1	wukong
127.0.0.1	wukong.com
127.0.0.1	test01.wukong.com
127.0.0.1	localhost
from flask import Flask,Response,request 
from datetime import datetime,timedelta 
from cmsblueprint import bp 

app = Flask(__name__) 

app.register_blueprint(bp) 
app.config['SERVER_NAME'] = 'wukong.com:5000' 

@app.route('/createCookie/') 
def createCookie():
	resp = Response("服务器端通过Response对象创建Cookie信息 并返回给客户端 并保存在客户端") 
	
	#设置访问实时时间加上一个月
	ex2 =datetime.now() + timedelta(days=30,hours=16)
	
	#给Cookie信息设置 存活时间 【有效域名---》子域名】 
	resp.set_cookie('uname', "wukong", expires=ex2,domain=".wukong.com") 
	return resp 

if __name__ == '__main__': 
	app.run(debug=True)
	

你可能感兴趣的:(Flask框架之cookie的基本设置)