浅谈Cookie和Session

Cookie和Session


  • Cookie: 是某些网站为了辨别用户身份、进行会话跟踪而储存在用户本地的数据(通常经过加密)。
  • Cookie由服务器端生成,发送给客户端,客户端会将Cookie的key/value保存,下次请求同一网站就发送该Cookie给服务器(前提是客户端设置为启用Cookie)。
  • Cookie的key/value可以由服务端自己定义。

设置Cookie—服务端发送到客户端保存

from flask import Flask, make_response

app = Flask(__name__)
@app.route("/set_cookie")
def set_cookie():
    # 创建响应make_response
    resp = make_response("this is set_cookie")
    # 设置cookie,key/value    max_age设置过期时间
    resp.set_cookie("name", "zoro", max_age = 3600)
    # 向客户端发送响应
    return resp

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

获取Cookie—服务端接收到来自客户端保存的Cookie

from flask import Flask, make_response, request

app = Flask(__name__)
@app.route("/get_cookie")
def get_cookie():
# 发送请求通过request对象获取cookies属性
req = request.cookies.get("name")
return req

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

Session

  • 对于敏感、重要的信息,建议要存储在服务器端,不能存储在浏览器中,如用户名、余额、等级、验证码等信息。
  • 在服务器端进行状态保持的方案就是Session
  • Session依赖于Cookie

代码实现

from flask import Flask, make_response, request,session

app = Flask(__name__)

# 配置SECRET_KEY
class Config(object):
    # 此处必须大写SECRET_KEY
    SECRET_KEY = "adsfasd"
# 加载配置
app.config.from_object(Config)


@app.route("/set_session")
def set_session():
    # 设置Session
    session["name"] = "zoro"
    return "设置session成功"
@app.route("/get_session")
def get_session():
    # 获取session
    return session.get("name")

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

注意:设置Session时必须配置SECRET_KEY

  • 注:request 和 session都属于flask上下文中的请求上下文
  • request
    封装了HTTP请求的内容,针对的是http请求。举例:user = request.args.get(‘user’),获取的是get请求的参数。
  • session
    用来记录请求会话中的信息,针对的是用户信息。举例:session[‘name’] = user.id,可以记录用户信息。还可以通过session.get(‘name’)获取用户信息。

  • 与之相对的还有应用上下文。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值