无状态:HTTP协议是无状态的,一次请求响应结束后,服务器不会留下关于客户端状态的信息"状态"指的是两个相互关联的用户交互时的公共信息。
无状态即各自维护自身的状态,如会话信息都在客户端,服务端并不保存状态信息,
就比如你登录了一个网站注册了信息但是你退出网站在返回时网站并不会记录你的状态还会让你再次登录
状态保持:解决无状态的方法用cookie和session去实现状态保持
在flask中,如果想要在响应中加一个cookie,可以用response的set_cookie()方法。
要用这个方法,需要先使用make_response()方法手动生成一个响应对象,传入响应主体作为参数。这个响应对象默认实例化内置的response类。
1. 设置cookie:
设置cookie,默认有效期是临时cookie,浏览器关闭就失效
可以通过 max_age 设置有效期, 单位是秒
resp = make_response("success") # 设置响应体
resp.set_cookie("Itcast_1", "python_1", max_age=3600)
2.获取cookie
获取cookie,通过reques.cookies的方式, 返回的是一个字典,可以获取字典里的相应的值
cookie_1 = request.cookies.get("Itcast_1")
3.删除cookie
这里的删除只是让cookie过期,并不是直接删除cookie
删除cookie,通过delete_cookie()的方式, 里面是cookie的名字
resp = make_response("del success") # 设置响应体
resp.delete_cookie("Itcast1")
session(基于cookie,解决cookie容易被获取的问题)
1、session的操作方式:
使用session需要从flask中导入session,以后所有和session相关的操作都是通过这个变量来的
使用session需要设置SECRET_KEY,用来作为加密用的,并且这个SECRET_KEY如果每次服务器启动后都变化的话
那么之前的session就不能通过当前这个SECRET_KEY进行解密了
操作session的时候,跟操作字典是一样的
添加session:session['username']
删除:session.pop('username')或者del session[username]
清除所有session:session。clear()
获取session:session.get('username')