浅谈Cookie和Session
程序员文章站
2022-03-02 10:21:18
...
Cookie和Session
Cookie
- 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’)获取用户信息。与之相对的还有应用上下文。
上一篇: 【20180809】集训题d1
下一篇: 叉乘: 点和直线关系
推荐阅读
-
浅谈pandas中shift和diff函数关系
-
浅谈innodb_autoinc_lock_mode的表现形式和选值参考方法
-
js和php的区别(浅谈php与js语言难易程度)
-
PHP cookie与session会话基本用法实例分析
-
Yii框架操作cookie与session的方法实例详解
-
浅谈javascript的url参数parse和build函数
-
浅谈Python编程中3个常用的数据结构和算法
-
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
-
SpringBoot2.x+Redis+nginx实现session共享和负载均衡
-
浅谈mysql密码遗忘和登陆报错的问题