Python flask中session用法

Flask session 概念:

程序可以把数据存储在用户会话中,用户会话是-种私有存储,默认情况下,它会保存在客户端cookie中。Flask提供了session 对
象来操作用户会话。session 是基于cookie实现, 保存在服务端的键值对(形式为 {随机字符串:‘xxxxxx’}), 同时在浏览器中的cookie中也对应一相同的随机字符串,用来再次请求的 时候验证;

注意 :Flask中的session是存在浏览器中  默认key是session(加密的cookie),使用session时要设置一个密钥app. secret_ key 

 

操作session就像操作python 中的字典一样,我们可以使用session['user']获取值,也可以使用session. get('user')获取值。

因为session就像字典一样所以,操作它的时候有两种方法:

  • (1)result = session[‘username’] :如果内容不存在,将会报异常

  • (2)result = session.get(‘username’) :如果内容不存在,将返回None(推荐用法)

所以,使用第二种方法获取session较好。

下面的代码中展示了session的设置、读取、删除、清除

# *==============
### 如何在Python Flask框架中使用Session 为了管理用户的会话数据,在Flask应用程序中可以利用`flask.session`对象来存储特定于用户的信息。这些信息将会被加密并保存到客户端的cookie中,只有服务器端能够解密读取。 首先需要导入必要的模块: ```python from flask import Flask, session ``` 接着设置一个秘密密钥用于签名session中的内容,这一步非常重要以保障安全性[^1]: ```python app = Flask(__name__) app.secret_key = 'your_secret_key' # 应该是一个随机字符串 ``` 当想要向当前用户的session添加新条目时,可以通过简单的赋值操作完成: ```python @app.route('/login', methods=['POST']) def login(): user_name = request.form['username'] session['user'] = user_name return f"Logged in as {user_name}" ``` 如果希望从session中移除某个条目的时候,则可调用`pop()`方法或者直接删除整个session: ```python @app.route('/logout') def logout(): # 移除用户名字 session.pop('user', None) # 或者清空全部session数据 # session.clear() return "You have been logged out" ``` 访问已存入的数据只需要通过键名索引即可获得相应的值: ```python @app.route('/') def index(): user = session.get('user') # 安全的方式获取session中的'user' if not user: return "Not Logged In" return f"Welcome back, {user}!" ``` 上述代码展示了基本的登录/登出功能以及如何检查用户是否已经登录。需要注意的是,实际部署环境中应该更加严格地处理安全问题,比如采用更复杂的认证机制和HTTPS协议传输敏感信息[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangvalue

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值