商城网站服务器,WordPress仪表盘主题,深圳投资推广署官网,广州开发区投资集团flask篇之session与cookie(二十六)
在 Flask 中#xff0c;可以使用 session 来在不同请求之间存储和传递数据。Session 在客户端和服务器端之间交换#xff0c;但是数据存储在服务器端。
Session 与 Cookie 的区别
session 和 cookie 都可以用来在不同请求之间存储和传递…flask篇之session与cookie(二十六)
在 Flask 中可以使用 session 来在不同请求之间存储和传递数据。Session 在客户端和服务器端之间交换但是数据存储在服务器端。
Session 与 Cookie 的区别
session 和 cookie 都可以用来在不同请求之间存储和传递数据但是它们有一些不同之处
存储位置session 是存储在服务器端的而 cookie 是存储在客户端的。安全性session 比 cookie 更安全因为数据存储在服务器端客户端无法篡改。而 cookie存储在客户端如果数据没有加密或签名那么客户端可以篡改 cookie 中的数据。存储容量session 可以存储更多的数据因为数据存储在服务器端。而 cookie 的大小限制较小。
在实际开发中应根据需求来选择 session 或 cookie。如果需要存储一些敏感数据那么应该使用 session 来保证安全性。如果只需要存储一些简单的数据那么可以使用 cookie 来方便地在不同请求之间传递数据。
使用Session
要在 Flask 中使用 session需要先安装 Flask-Session 扩展。安装方法如下
pip install flask-session安装好后在 Flask 中使用 session 就很简单了。首先需要在 app 初始化中配置 session。例如
from flask import Flask
from flask_session import Sessionapp Flask(__name__)
app.config[SESSION_TYPE] filesystem
app.config[SECRET_KEY] mysecretkey
Session(app)这个例子中我们指定了 session 存储的类型是文件系统也可以使用其他的存储类型例如 redis。SECRET_KEY 是用来签名 session 数据的密钥所以必须设置它。
在代码中使用 session 也很简单。可以像使用字典一样来操作 session。例如
这个例子中我们将一个 key 为 ‘username’value 为 ‘admin’ 的数据存储到了 session 中。
#!/usr/bin/env python3from flask import Flask
from flask import sessionapp.secret_keykdjklfjk87384hjdhjhapp.route(/)
def index():return Hello World!app.route(/set_session)
def set_seesion():#设置session持久化session.permanent Truesession[username] adminreturn 成功设置 sessionapp.route(/get_session)
def get_session():value session.get(username)return 成功获取seesion的值为 {}.format(value)if __name__ __main__:app.run(debugTrue)然后通过 get_session 这个函数去获取我们之前存在session 中的value值
保存这些代码接下来我们去运行这个脚本
python3 app.py任意浏览器输入URL地址http://127.0.0.1:5000/set_session 如图成功设置我们的 seesion 浏览器输入URL地址http://127.0.0.1:5000/get_session 如图成功获得我们设置的 seesion 的value值 使用Cookie
在 Flask 中可以使用 cookie 来在客户端和服务器端之间交换数据。与 session 不同的是cookie 是存储在客户端的。使用 cookie 可以方便地在不同请求之间传递数据。
在 Flask 中使用 cookie 也很简单。可以使用 Response 对象的 set_cookie 方法来设置 cookie例如
#!/usr/bin/env python3
from flask import Flask, Responseapp Flask(__name__)app.route(/)
def index():return Hello World!app.route(/set_cookie)
def set_cookie():resp Response(Hello, World)resp.set_cookie(username, admin)return respif __name__ __main__:app.run(debugTrue)保存这些代码接下来我们去运行这个脚本
python3 app.py浏览器输入URL地址http://127.0.0.1:5000/set_cookie这个例子中我们在返回的响应中设置了一个名为 ‘username’值为 ‘admin’ 的 cookie。 在 Flask 中读取 cookie 也很简单。可以使用 request 对象的 cookies 属性来获得所有的 cookies例如
#!/usr/bin/env python3
from flask import Flask, request, Responseapp Flask(__name__)app.route(/)
def index():return Hello World!app.route(/set_cookie)
def set_cookie():resp Response(Hello, World)resp.set_cookie(username, admin)return resp
app.route(/get_cookie)
def get_cookie():username request.cookies.get(username)return fHello, {username}if __name__ __main__:app.run(debugTrue)保存这些代码接下来我们去运行这个脚本
python3 app.py浏览器输入URL地址http://127.0.0.1:5000/get_cookie这个例子中我们通过 request 对象的 cookies 属性来获取名为 ‘username’ 的 cookie并将其值作为响应返回。