Flask(12)- 操作 Session
前言
Session 详解:https://www.cnblogs.com/poloyy/p/12513247.html
这一节来瞧一瞧如何用 Flask 操作 Session
功能 list
提供操作 Session 的 4 项功能
页面路径 | 功能 |
---|---|
/set | 在 Session 中存储一个名称为 ‘user’、值为 ‘tom’ 的变量 |
/get | 获取 Session 中名称为 ‘user’ 的变量 |
/del | 删除 Session 中名称为 ‘user’ 的变量 |
/clear | 清除 Session 中所有的变量 |
项目构成
程序有 2 个源文件构成
源文件 | 描述 |
---|---|
app.py | Flask 后端程序,提供操作 Session 的接口 |
templates/query.html | 查询 Session 中名称为 user 和 pwd 的变量,并返回给客户端 |
模板文件 query.html
用户的数据存储在 Session 中,服务端程序使用页面模板 query.html 展示 Session 中的数据
<html> <head> <meta charset='UTF-8'> <title>显示 session 中的变量</title> </head> <body> <h1>显示 session 中的变量</h1> <h2>session.get('user') = {{ user }}</h2> <h2>session.get('pwd') = {{ pwd }}</h2> </body> </html>
Flask app.py 代码
引入模块
#!usr/bin/env python # -*- coding:utf-8 _*- """ # author: 小菠萝测试笔记 # blog: https://www.cnblogs.com/poloyy/ # time: 2021/7/16 9:47 下午 # file: app.py """ from flask import Flask, render_template, session import os app = Flask(__name__) app.config['SECRET_KEY'] = os.urandom(24)
- Flask 有个配置属性叫 SECRET_KEY
- SECRET_KEY 是一个密钥,Flask 以及相关的扩展 extension 需要进行加密时需要使用这个密钥
- 使用 Session 存储数据时,Flask 在内部需要进行加密处理,所以要配置这个 KEY
- 这边用 Python 的 os.random() 生成一个包含 24 个字符的随机字符串
设置 Session
@app.route("/set") def set(): session["user"] = "poloyy" session["pwd"] = "password" return render_template('query.html', user=session.get("user"), pwd=session.get("pwd"))
获取 Session
@app.route("/get") def get(): user = session.get("user") pwd = session.get("pwd") return render_template('query.html', user=user, pwd=pwd)
删除 Session
@app.route("/del") def del_(): session.pop("user") return render_template('query.html', user=session.get("user"), pwd=session.get("pwd"))
清空 Session 全部变量
@app.route("/clear") def clear(): session.clear() return render_template('query.html', user=session.get("user"), pwd=session.get("pwd"))
浏览器的运行效果
设置 Session
获取 Session
删除 Session
清空 Session 全部变量
总结
标签:
Flask
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
2020-07-17 性能测试必备知识(4)- 使用 stress 和 sysstat 分析平均负载过高的场景