Flask 3(会话技术)

1、Cookie(存到客户端)

新建login.html
在这里插入图片描述

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="{{ url_for('second.login') }}" method="post">
    <span>用户名</span>
    <input type="text" name="username" placeholder="请输入用户名">
    <br>
    <button>登录</button>
</form>
</body>
</html>

视图
在这里插入图片描述

@second.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")
        return username

运行后访问
在这里插入图片描述
在这里插入图片描述

1.1、存储Cookie

加入cookie
在这里插入图片描述

        reponse = Response("%s 登录成功,并用cookie记录了" % username)
        reponse.set_cookie('username', username)

访问
在这里插入图片描述
在这里插入图片描述

1.2、获取Cookie信息

在这里插入图片描述
在这里插入图片描述
注意:cookie本不支持中文,这里是被flask自动做了转换
在这里插入图片描述

2、Session(存到服务器–>客户端)

把登录信息存到session中

session需要配置一个SECTET_KEY

现在setting里面写一个SECTET_KEY,这个SECTET_KEY自定义值就行,越复杂越好
在这里插入图片描述
然后在视图里面写
在这里插入图片描述
访问
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在浏览器页面按F12,查看cookie我们会发现cookie储存了整个session的内容
在这里插入图片描述

2.1、Session持久化,将Session存到redis中

先安装flask-session:pip install flask-session
然后在settings中注册:
在这里插入图片描述
在ext中注册flask-session插件

在这里插入图片描述
启动redis:redis-server.exe redis.windows.conf(注意这里我是windows环境下)

redis未安装的可以参考这里:
https://blog.csdn.net/a__int__/article/details/103648033

先安装redis模块:pip install redis

然后启动redis
在这里插入图片描述
启动flask:python manage.py runserver -d -r
先清空浏览器的cookie
在这里插入图片描述
访问:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看cookie
在这里插入图片描述
cookie里面记录的这个session值什么意思呢,我们在redis里面查看一下,打开一个新的cmd窗口:

涉及的几个redis指令如下:
redis-cli
keys *
get session:####写里面是复制过来的session码####
在这里插入图片描述
redis-session记录有效期大概是31天

在这里插入图片描述

发布了136 篇原创文章 · 获赞 30 · 访问量 7095

猜你喜欢

转载自blog.csdn.net/a__int__/article/details/104263331