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 全部变量 

  

总结

 

posted @   小菠萝测试笔记  阅读(660)  评论(0编辑  收藏  举报
编辑推荐:
· 从 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 分析平均负载过高的场景
点击右上角即可分享
微信分享提示