python三大框架之一flask中cookie和session的相关操作

状态保持

Cookie

cookie 是指某些网站为了 辨别 用户身份,进行会话跟踪而储存在用户本地的数据(通常会经过加密),复数形式是 coolies.

cookie是由服务器端生成,发送给客户端浏览器,浏览器会见Cookie中的key和value保存,下一次请求同一个浏览器时发给cookie服务端(前提是浏览器设置为启用cookie),cookie中的key和value可以由服务端自己定义。

cookie基本应用在判断注册用户是否登陆网站,网站的广告推送,购物车等。

小提示:

因为cookie是储存在浏览器上的文本信息,有可能会被其他人使用,建议不要储存敏感信息;

cookie基于域名安全,不同域名的cookie是不能互相访问的。

cookie的应用

#cookie相关操作,以来make_response库,调用cookie依赖request模块

from flask import Flask,make_response,request

#建立对象

app =Flask(__name__)

#从配置文件中加载配置

app. config.from_pyfile('config.ini')

@app.route('/')

def index():

return '这是首页'

#存cookie的方法

@app.route('/setcookie')

def set_cookie():

resp = make_response('储存cookie')

#使用方法set_cookie来存储key-value形式的数据,可以添加存活时间

resp.set_cookie('productnamae','[卫生纸','胶布]',max_age=3600) #在储存cookie时,可以设置过期时间

return resp

#调用cookie的方法

@app.route("/getcookie")

def get_cookie():

#通过request模块的cookies模块的get方法,指定key调用value

resp = request.cookies.get('productnamae')

return resp

#删除模块

@app.route('/delecookie')

def del_cookie():

#通过make_response对象内置的delete_cookie方法,指定key调用value

resp = make_response('删除cookie')

resp.delete_cookie('productnamae')

return resp

#程序入口

if __name__ == "__main__":

app.run()

session

对于敏感,重要的信息,建议储存到服务器端,不能储存到浏览器中,如用户名,余额,密码等,在服务端进行状态保持的方案就是Session

sessoin依赖于cookie.

session:请求上下文对象,用于处理HTTP请求中的一些数据

应用

#session是依赖于flask的session模块

#如果想使用sessi模块,必须在配置里添加

from flask import Flask,session

#建立对象

app = Flask(__name__)

#从配置文件中加载配置

app.config.from_pyfile('config.ini')

@app.route('/')

def index():

return '我是首页,session'

#存储session的方法

@app.route('/set_session')

def set_session():

#直接使用session对储存的内容复值

session['username'] = '你好'

return '存储session成功'

#调用session方法

@app.route('/get_session')

def get_session():

#通过session直接对内容进行调用

se = session['username']

return se

#删除session方法

@app.route('/del_session')

def del_session():

#通过session的post方法指定key删除value

session.pop('username')

return '删除成功'

if __name__ == "__main__":

app.run()