Flask-Session 简单使用
一 知识点
1. 安装 flask 1.0.2
使用Flask-Session,其实必须需要配置的只有这几个地方:
注意!!!!!!:
1. 需要配置的地方1
# flask_session 中的Session是依赖于falsk中的session的,所以这里的session一定要导入,否则运行过程中报错 from flask import Flask, render_template, request
2. 需要配置的地方2 (浏览源码获得的结果)
# 如果你不对这个flask_session中的Session进行配置的话,它在源码中跑一圈,就会回来使用flask中原生的session
# 如果配置了,就会使用相应的配置,使用flask_session中的session,配合你的配置进行运行 app.config["SESSION_TYPE"] = "redis" # 指定"SESSION_TYPE"
app.config["SESSION_REDIS"] = Redis(host='127.0.0.1', port=6379) # 指定"SESSION_REDIS",应该是个redis链接
3. 需要配置的地方3
# 实例化一个session,需要配合配置
Session(app)
4. 必须注意的地方: Session(app) 必须写在app.config[]的下边!!!!!否则会报错说需要将应用程序上的secret_key设置为唯一且保密的内容:
# The session is unavailable because no secret key was set.
# Set the secret_key on the application to something unique and secret.
# 翻译会话不可用,因为没有设置密钥。 将应用程序上的secret_key设置为唯一且保密的内容。
二 具体代码如下:
app.py 文件:
# 注意: flask_session 中的Session是依赖于falsk中的session的,所以这里的session一定要导入,否则运行过程中报错
from flask import Flask, request, render_template, redirect, session
from flask_session import Session
from redis import Redis app = Flask(__name__) # 如果你不对这个flask_session中的Session进行配置的话,它在源码中跑一圈,就会回来使用flask中原生的session
# 如果配置了,就会使用相应的配置,使用flask_session中的session,配合你的配置进行运行
app.config["SESSION_TYPE"] = "redis" # 指定"SESSION_TYPE"
app.config["SESSION_REDIS"] = Redis(host='127.0.0.1', port=6379) # 指定"SESSION_REDIS",应该是个redis链接 # 实例化一个session,需要配合配置(必须写在app.config[]的下边!!!!!否则会报错说需要将应用程序上的secret_key设置为唯一且保密的内容)
# The session is unavailable because no secret key was set. Set the secret_key on the application to something unique and secret.
# 翻译会话不可用,因为没有设置密钥。 将应用程序上的secret_key设置为唯一且保密的内容。
Session(app) @app.route("/login", methods=["GET", "POST"])
def login():
if request.method == "GET":
return render_template("login.html")
else:
# session["user"] = 123
session["user"] = request.form.get('username')
return " 愿每个人都被世界所善待~ {}".format(str(session["user"])) if __name__ == '__main__':
app.run()
login.html 文件:
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta http-equiv="content-Type" charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Title</title>
</head>
<body>
<form action="" method="post" enctype="multipart/form-data">
<input type="text" name="username">
<input type="file" name="myFile">
<input type="submit" value="提交">
</form>
</body>
</html>
Flask-Session 简单使用的更多相关文章
- flask-admin章节四:flask session的使用
1. 关于session flask session可能很多人根本都没有使用过,倒是cookie大家可能使用得比较多.flask cookie使用起来比较简单,就两个函数,读取和设置. 具体使用方式如 ...
- Flask的简单认识
Flask的简单认识 Flask是轻量级的框架,适用于简单的程序 与Django的比较: Django: 无socket,中间件,路由,视图(CBV,FBV),模板,ORM, cookie,sessi ...
- Flask session到期时间设置 用户登录与登出
flask版本 1.1.1 最近学习Flask开发,看官方文档产生疑问,就是session有效期的问题,默认貌似是没有有效期的,只有关闭浏览器session才会失效,其实控制session的有效期非常 ...
- Flask Session 详解
会话session ,允许你在不同请求 之间储存信息.这个对象相当于用密钥签名加密的 cookie ,即用户可以查看你的 cookie ,但是如果没有密钥就无法修改它. from flask impo ...
- Flask Session 使用和源码分析 —— (6)
基本使用 from flask import Flask, session, redirect, url_for, escape, request app = Flask(__name__) @app ...
- 11.4 Flask session,闪现
session 加密后放在用户浏览器的 cookie 中 于django 的自带session 不同,flask 的 session 需要导入 from flask import session 添加 ...
- flask session
flask session工作机制: 把敏感数据经过加密后放入到‘session’中,然后在把'session'存放到cookie中,下次请求的时候,再从浏览器发送过来的cookie中读取sessio ...
- JavaWeb学习总结(十):Session简单使用
一.Session简单介绍 在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下).因此,在需要保存用户数据时,服务 ...
- 【Flask】Flask Session操作
### session:1. session的基本概念:session和cookie的作用有点类似,都是为了存储用户相关的信息.不同的是,cookie是存储在本地浏览器,session是一个思路.一个 ...
- flask session 使用默认配置修改session不生效问题
flask session相关 使用flask 默认sessio是存储在浏览器的cookie中,当请求返回时会将session写在cooKie中,但是在写的时候,默认并不是每次都重新写入 比如下例子 ...
随机推荐
- MapReduce论文学习
MapReduce和区块链有什么相同的地方? 我的天哪,他俩还有相同的地方呢.我书读的少,你别骗我. 他俩还真有相同点,绝不忽悠. 他俩都有一个高大上的名字. 区块链就是一个分布式数据库,并不是什么神 ...
- 理解block和inode
什么是block和inode? 定义:block就像是杯子 inode就像是杯子的编号,因为杯子太多了 1.根据文件的大小,在磁盘中储存时会占用一个或多个block:那么究竟多大的文件会使用一个blo ...
- [STM32F103]外部中断
① 初始化IO口为输入. GPIO_Init(); ② 开启IO口复用时钟. RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); ③ 设置IO口与中 ...
- Python常用高级函数
一 .匿名函数 有些时候,我们不需要显式的定义函数,可以使用匿名函数临时快速定义函数. lambda x: x * x 关键字lambda表示匿名函数,冒号前面的x表示函数的参数,多个参数用','隔开 ...
- JMETER之socket接口性能测试
公司的**产品经过换代升级,终于要上线了,纯java编码,包括POS(PC/安卓平板)版.WEB版.微信版,各终端通过 Webservice服务共享数据资源,因此Webservice各接口的性能测试就 ...
- JAVA设计方法思考之如何实现一个方法执行完毕后自动执行下一个方法
今天编程时,突然想起来在一些异步操作或Android原生库的时候,需要我们实现一些方法, 这些方法只需要我们具体实现,然后他们会在适当的时候,自动被调用! 例如AsyncTask,执行玩doInBac ...
- Django ORM中常用字段和参数
一些说明: 表myapp_person的名称是自动生成的,如果你要自定义表名,需要在model的Meta类中指定 db_table 参数,强烈建议使用小写表名,特别是使用MySQL作为后端数据库时. ...
- React16的interactiveUpdates
交互式更新是用户交互的结果. 它们比默认的非交互式更新(如服务器事件)具有更高的优先级. 异步模式下交互式更新的特殊之处在于,一次交互式更新可能会影响后续行为. 例如,一个表单字段上的"提交 ...
- lombok踩坑与思考
虽然接触到lombok已经有很长时间,但是大量使用lombok以减少代码编写还是在新团队编写新代码维护老代码中遇到的. 我个人并不主张使用lombok,其带来的代价足以抵消其便利,但是由于团队编码风格 ...
- Linux 添加中文字体库,解决Java 生成中文水印不显示问题
本机 Windows 环境测试以下代码生成中文水印完全没问题,但是发布到Linux下不显示,一开始以为是报错了没打印出来,搜索发现直接提示中文乱码的或者不显示的,才明白原来是字体库原因,于是开始解决这 ...