Flask - Sessions会话

Flask - Sessions会话 首页 / Flask入门教程 / Flask - Sessions会话

与Cookie不同,Session数据存储在服务器上,每个游客访问网站都被分配了Session IDSession数据存储在cookie中,服务器对它们进行加密语法。对于这种加密,Flask应用程序需要定义的 SECRET_KEY 。

Session对象也是一个字典对象 ,其中包含会话变量和关联值的键-值对(key/value)。

如,要设置"username" Session变量,请使用以下语句-

Session[‘username']='admin'

要释放Session变量,请使用 pop()方法。

session.pop('username', None)

以下代码是Flask中Session工作的简单演示。 URL'/'只是提示用户登录,因为未设置Session变量"username" 。

@app.route('/')
def index():
   if 'username' in session:
      username=session['username']
         return 'Logged in as ' + username + '<br>' +\
         "<b><a href='/logout'>click here to log out</a></b>"
   return "You are not logged in <br><a href='/login'></b>" +\
      "click here to log in</b></a>"

当用户浏览到"/login"时,由于通过GET方法调用了login()函数,因此会打开一个登录表单。

表单被发布回" /login" ,现在已设置Session变量,应用程序被重定向到‘/',然后读取到了Session username变量 。

@app.route('/login', methods=['GET', 'POST'])
def login():
   if request.method == 'POST':
      session['username']=request.form['username']
      return redirect(url_for('index'))
   return '''
	
   <form action="" method="post">
      <p><input type=text name=username/></p>
      <p<<input type=submit value=Login/></p>
   </form>
	
   '''

该应用程序还包含一个 logout()视图函数,该函数会删除 Session username 变量。因此,‘/' URL再次显示了打开的页面。

@app.route('/logout')
def logout():
   # 如果存在,则从会话中删除用户名
   session.pop('username', None)
   return redirect(url_for('index'))

运行该应用程序并访问主页。 (确保设置应用程序的 secret_key )

链接:https://www.learnfk.comhttps://www.learnfk.com/flask/flask-sessions.html

来源:LearnFk无涯教程网

from flask import Flask, session, redirect, url_for, escape, request
app=Flask(__name__)
app.secret_key='any random string'

输出将显示如下。单击链接"单击此处登录" 。

Login Page Using Session

该链接将被定向到另一个屏幕。输入" admin"。

Another Login Screen

屏幕将显示"Logged in as admin" 消息。

Logged in as admin

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

代码精进之路 -〔范学雷〕

Java性能调优实战 -〔刘超〕

张汉东的Rust实战课 -〔张汉东〕

乔新亮的CTO成长复盘 -〔乔新亮〕

技术面试官识人手册 -〔熊燚(四火)〕

Spring编程常见错误50例 -〔傅健〕

PyTorch深度学习实战 -〔方远〕

自动化测试高手课 -〔柳胜〕

Midjourney入门实践课 -〔Jovi〕

好记忆不如烂笔头。留下您的足迹吧 :)