Flask 中内置的 Session 应用

摘要:
目录1.Flask_Key中的会话需要Secret 2.会话引发异常3.会话用法:4.验证会话Flask中的会话是否非常奇怪。它会将您的SessionID存储在客户端的cookie中。使用1也很奇怪。Flask中的会话需要是secret_Key的fromflaskiportSessionapp=Flask(__name__)app.s
目录

Flask中的Session非常的奇怪,他会将你的SessionID存放在客户端的Cookie中,使用起来也非常的奇怪 1.Flask 中 session 是需要 secret_key 的
from flask import session
app = Flask(__name__)
app.secret_key = "i am session"   #这里只需要随机指定一个字符串即可
2.session抛异常

secret_key 实际上是用来加密字符串的,如果在实例化的app中没有 secret_key 那么开启session一定会抛异常的

img

3.session 用法:

session["user"] = USER["username"] 这样用就代表这个请求带上来的session中保存了一个user=name
如果创建验证session的话,就用这种方法吧

USER = {'username': 'anny', 'password': "123"}
@app.route("/login", methods=["GET", "POST"])
def login():
    if request.method == "POST":
        if request.form["username"] == USER["username"] and request.form["password"] == USER["password"]:
            session["user"] = USER["username"]
            return redirect("/student_list")
        return render_template("login.html", msg="用户名密码错误")

    return render_template("login.html", msg=None)  # 如果前端Jinja2模板中使用了msg,这里就算是传递None也要出现msg
4.验证session

cookies 中的 session 是什么?

cookies 中 session 存储的是通过 secret_key 加密后的 key , 通过这个 key 从flask程序的内存中找到用户对应的session信息

@app.route("/student_list")
def student():
    if session.get("user"):   #session存在
        return render_template("student_list.html", student=STUDENT_DICT)

    return redirect("/login")

免责声明:文章转载自《Flask 中内置的 Session 应用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇PureMVC源码分析vue 插件之install下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

express中间件

中间件(Middleware)可以理解为一个对用户请求进行过滤和预处理的东西,它一般不会直接对客户端进行响应,而是将处理之后的结果传递下去。 Express支持的中间件在express官网中可以看出express本身支持若干中间件: basicAuth:基本的身份认证功能,处理之后可以通过req.user属性访问被认证的用户对象 bodyParser:完...

django项目搭建及Session使用

django+session+中间件 一、使用命令行创建django项目 在指定路径下创建django项目 django-admin startproject djangocommon   在项目目录下  创建app cd djangocommon python manage.py startapp commoncore(django-admin sta...

转载【微信支付】jsapi支付之传参问题(使用微信官方SDK之PHP版本) V3之WxpayPubHelper 亲测有效,V3WxpayAPI_php_v3.zip版未测试,理论上也是一样的。

本文转载至:http://blog.csdn.net/geeklx/article/details/51146151 (微信支付现在分为v2版和v3版,2014年9月10号之前申请的为v2版,之后申请的为v3版。V3版的微信支付没有paySignKey参数。) 写在最前面:V3 WxpayPubHelper 亲测有效,最新版本(WxpayAPI_php_v...

iOS 三种录制视频方式

随着每一代 iPhone 处理能力和相机硬件配置的提高,使用它来捕获视频也变得更加有意思。它们小巧,轻便,低调,而且与专业摄像机之间的差距已经变得非常小,小到在某些情况下,iPhone 可以真正替代它们。 这篇文章讨论了关于如何配置视频捕获管线 (pipeline) 和最大限度地利用硬件性能的一些不同选择。 这里有个使用了不同管线的样例 app,可以在Gi...

Cookie和Session

会话概述 什么是会话:用户打开一个浏览器访问页面,访问网站的很多页面,访问完成后将浏览器关闭的过程称为是一次会话。常见的会话技术:* Cookie:将数据保存到客户端浏览器。* Session:将数据保存到服务器端。 Cookie 技术的使用 向浏览器保存数据:HttpServletResponse 的方法:  * void addCookie(Cook...

Flask-SQLAlchemy数据库ORM

SQLAlchemy 首先需要知道ORM是什么 ORM: Object-Relational Mapping, 对象关系映射, 能够把关系型数据库的表结构映射到模型类对象上, 即实例化一个类对象, 通过操作该对象来操作后台数据库表 使用ORM而不使用手动拼写原生SQL语句有两点好处: 使用起来更加方便, 使用面向对象的一套操作即可操作数据库 能够有效防止...