flask中内置的session

摘要:
使用1也是非常奇怪的。Flask中的会话需要secret_Key来自flaskimportSessionapp=Flask(__name__)app.secret_Key=“小白”secret_密钥实际上用于加密字符串,

Flask中的Session非常的奇怪,他会将你的SessionID存放在客户端的Cookie中,使用起来也非常的奇怪

1. Flask 中 session 是需要 secret_key 的

from flask import session
app = Flask(__name__)
app.secret_key = "xiaobai"

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

2. session 要这样用

@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

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

3. cookies 中的 session 是什么

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

4. 怎么用 session 进行验证呢?

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

    return redirect("/login")

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

上篇一个div有多个class,如何通过xpath获取?树形DP+RMQ+单调队列(Bob’s Race HDU4123)下篇

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

相关文章

.NET Core 面试题

第一题,什么是ASP net core? 首先ASP net core不是 asp net的升级版本。它遵循了dot net的标准架构, 可以运行于多个操作系统上。它更快,更容易配置,更加模块化,可扩展性更强。 第二题,asp dot core有哪些好的功能? 1.是依赖注入。 2.是日志系统架构。 3.是引入了一个跨平台的网络服务器,kestrel。可以...

Android开发5:应用程序窗口小部件App Widgets的实现

前言   本次主要是实现一个Android应用,实现静态广播、动态广播两种改变 widget内容的方法,即在上篇博文中实验的基础上进行修改,所以此次实验的重点是AppWidget小部件的实现啦~   首先,我们简单说一下Widget是一个啥玩意~   应用程序窗口小部件(Widget)是微小的应用程序视图,可以被嵌入到其它应用程序中(比如桌面)并接收周期...

oracle查看和修改最大连接数

第一步,在cmd命令行,输入sqlplus 或者直接在plsql中打开command window第二步,根据提示输入用户名与密码1. 查看processes和sessions参数 1 2 3 4 5 6 7 8 9 10 11 12 13 SQL> show parameter processes     NAME            ...

boost asio 异步实现tcp通讯

---恢复内容开始--- asioboost 目录(?)[-] 一前言 二实现思路 通讯包数据结构 连接对象 连接管理器 服务器端的实现 对象串行化 一、前言 boost asio可算是一个简单易用,功能又强大可跨平台的C++通讯库,效率也表现的不错,linux环境是epoll实现的,而windows环境是iocp实现的。而tcp通讯是项...

UI自动化-APP原生切换webview

  在当今互联网形式中,app内多为组合形式展示,内部嵌套webview页面,那么在做自动化时,就需要进行切换到webview中, 才可进行后续的操作。   此处就需要用到appium中的contexts,  及  driver.contexts,   context=self.driver.contexts print(self.driver.conte...

Android实现系统ROOT, 并能赋予app root权限

1.获取root权限-->修改adb源码a.打开system/core/adb/adb_main.cpp,或者是system/core/adb/daemon/main.cpp(这跟你的目录结构有关,可以用grep搜索一下关键字should_drop_privileges)b.找到should_drop_privileges函数,修改让其直接retur...