Python Flask session 内容保存到用户浏览器里

前言全局说明

Python Flask session 内容保存到用户浏览器里


一、安装flask模块

官方源:

pip3 install flask==2.3.2

国内源:

pip3 install flask==2.3.2 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com

以上二选一,哪个安装快用哪个
flask 安装时间 2023-11

更多国内源: https://www.cnblogs.com/wutou/p/17949398


二、引用模块

from flask import Flask

三、启动服务

https://www.cnblogs.com/wutou/p/17949220


四、创建 session

4.1.1 文件名:index.py
from flask import Flask, request, render_template, session, redirect

app=Flask(__name__)

## secret_key 值随意设置,是为了在用户浏览器里产生加密文件的密钥
app.secret_key = 'ALKERJ20934ALKDFJALDFJALKDF'

@app.route('/login', methods=['GET', 'POST'])
def login():
    n = request.form.get('name')
    p = request.form.get('pwd')

    if request.method == 'GET':
        ## GET请求
        return render_template('login.html')
    else:
        ## POST请求
        if n == 'admin' and p == 'admin' :
            ## 用户名和密码正确,则在用户浏览器里创建Cookie
			## xxx 可以理解为,存放这个网址用户名信息的 文件名,xxx 文件里存放着 admin 用户
			## 一般在其他网站,比如:百度 就把 xxx 改成 baidu.com
            session['xxx']='admin'
            return redirect(url_for('alias'))
        else:
            return render_template('login.html', result_err='用户名或密码错误')

@app.route('/alias')
def alias():
    username = session.get('xxx')
    if not username:
        return render_template('login.html', result_err='打开 /alias 页面失败, 没有登陆过,请登陆')

    return render_template('login.html', result_ok='Success')
	
if __name__ == '__main__':
    # app.debug = True
    # app.run(host='127.0.0.1',port = 5000)
    app.run(host='0.0.0.0',port = 5000)
4.2 html文件名:templates/login.html
 <html lang="zh-cn">
    <head>
	    <meta content="text/html; charset=utf-8" http-equiv="content-type" />
    </head>
    <body>
		<form method="post" action="/login">
			<label for="name"> 用户名:</label>
			<input type="text" name="name" value="admin">

			<label for="name"> 密码:</label>
			<input type="text" name="pwd" value="admin">
			
			<input type="submit" value="登陆">
		</form>
		<a>正确的,用户名: admin 密码: admin</a>
		{% if result_err %}
			<h2>登陆失败:</h2>
			<p><font color="#FF0000">{{ result_err }}</font></p>
		{% endif %}
		<br />
		{% if result_ok %}
			<h2>登陆成功:</h2>
			<p>{{ result_ok }}</p>
		{% endif %}
		<br />
    </body>
</html>
4.3 访问连接:

http://127.0.0.1:5000/login

4.4 效果:

提交前:
image

cookie 是空的


提交后:
image

cookie 里设置了值


未登录,访问 /alias 页面,需要登录后才能访问,如果未登录访问会提示下面错误
image


登录后,访问 /alias 页面,提示成功(只要不清除cookie,关闭后再打开,还是成功的)
image


5.1 google chrome:

右上角 "三个点" -- 更多工具 -- 清除浏览器数据
image

5.2 火狐:

右上角 "三个点" -- 设置 -- 隐私与安全 -- Cookie 和网站数据 -- 清除数据
image





免责声明:本号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。




参考、来源:
https://www.bilibili.com/video/BV11Y411h71J?p=5&vd_source=5c2b3f8973a7142edcd392291a47e5ca 07:44 (提交按钮input写法)
https://www.bilibili.com/video/BV11Y411h71J?p=8&vd_source=5c2b3f8973a7142edcd392291a47e5ca 09:55 (清理浏览器cookie缓存)



posted @ 2024-01-07 00:29  悟透  阅读(95)  评论(0)    收藏  举报