Flask 学习笔记(七)-会话技术Cookie,Session

11 篇文章 0 订阅
10 篇文章 1 订阅

本章GitHub

cookie

  • 客户端会话技术
  • 数据都是存储在浏览器中
  • 支持过期
  • 不能跨域名
    • frame 标签
    • 可以直接加载整个网站
  • 不能跨浏览器
  • cookie是通过Response来进行操作
  • flask中的cookie可以直接支持中文
    • flask对cookie中的内容做了编码

在这里插入图片描述

设置cookie时使用 Response对象

resp.set_cookie('key', value)

获取cookie时使用Request对象

request.cookies.get('key')

vi App/views.py

@blue.route('/home/')
def home():
    username = request.cookies.get("user")
    return render_template('home.html', username=username)

@blue.route('/login/', methods=["GET", "POST"])
def login():
    if request.method == "GET":
        return render_template('login.html')
    elif request.method == "POST":
        username = request.form.get("username")
        resp = Response(response="Login Success: %s" % username)
        resp.set_cookie('user', username)
        return resp


@blue.route('/logout/')
def logout():
    resp = redirect(url_for('first_blue.home'))
    resp.delete_cookie('user')
    return resp

访问:http://127.0.0.1:5000/home/
在这里插入图片描述
点击Login
在这里插入图片描述
输入用户名再次访问 http://127.0.0.1:5000/home/

在这里插入图片描述

点击Logout即可退出
打开浏览器检查工具也可看到cookie中有user=Sajor;
在这里插入图片描述
源码地址: https://github.com/565785929/StudyFlask/commit/bc552f16a2347aa0e6f154807fb07a74a926340c#diff-c5db64367d86638f03cdd41803ac4392


Session

  • session
    • 服务端会话技术
    • 对数据进行数据安全操作
    • 默认在内存中
      • 不容易管理
      • 容易丢失
      • 不能多台电脑协作
session['user'] = username

获取session时使用Session对象

session.get('user')

在这里插入图片描述
使用时需在manage.py中设置SECRET_KEY
vi manage.py

app.config['SECRET_KEY'] = "Study Flask"

重新访问可以看到cookie变为session

在这里插入图片描述
源码地址: https://github.com/565785929/StudyFlask/commit/4306aa0587a37c8b28b05433bbcb8d52e85260f4#diff-c5db64367d86638f03cdd41803ac4392

flask-session

我们知道session是存在内存中的,这不利管理,容易丢失,不能多台电脑协作,所以我们使用插件来将session存入redis数据库中。

文档:https://pythonhosted.org/Flask-Session/

安装:pip install Flask-Session
只需在manage.py中简单设置两条

from flask_session import Session
app.config['SESSION_TYPE'] = 'redis'
Session(app)

启动即可

  • flask-session 默认有效期31天
  • 设置session时使用 Session对象
    在这里插入图片描述

源码地址: https://github.com/565785929/StudyFlask/commit/e8a09519da4d97574d2104487848feea151dcb89#diff-c5db64367d86638f03cdd41803ac4392

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sajor_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值