python-flask框架学习笔记(六)--cookies和sessions

1.cookies/Cookies
cookies是一种数据存储手段,可以将一段文本保存在客户端(浏览器上的一种手段,并长时间保存),可以用来记住密码和记住搜索记录
cookies可以长时间保存。
栗子
flask代码

from flask import Flask,request,make_response,render_template
from flask_script import  Manager

app = Flask(__name__)
app.config['DEBUG'] = True
manager = Manager(app)

@app.route('/login',methods = ['GET','POST'])
def login():
    if request.method == 'POST':
        uname = request.form.get('uname')
        upwd = request.form['upwd']
        resp = make_response("保存cookie成功")
        #1000是自定义的保存时间,单位是秒
        resp.set_cookie('uname',uname,1000)
        resp.set_cookie('upwd',upwd,1000)
        return resp
    if request.method == 'GET':
        if 'uname' in request.cookies:
            print(request.cookies['uname'])
            print(request.cookies['upwd'])
        return render_template('login.html')

if __name__ == '__main__':
    manager.run()

html代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form method="post" enctype="multipart/form-data">
        <p>
            用户名:<input type="text" name="uname">
        </p>
        <p>
            密码:<input type="text" name="upwd">
        </p>
        <input type="submit" value="提交">
    </form>
</body>
</html>

建议使用火狐浏览器运行,chrome查看cookie太麻烦了。看一下运行结果,火狐浏览器查看cookie->F12-存储-Cookies
在这里插入图片描述
提过过后再看一下控制台
在这里插入图片描述

语法:
flask中使用cookie有两个步骤,第一步首先构建一个响应对象,第二步保存cookie。
构建响应对象有两种方法:
1.redirect()
from flask import redirect
resp = redirect(‘01-xx’)
return resp
2)make_response()封装字符串成响应对象
from flask import make_response
resp = make_response("" or render_template(‘xxx.html’))
return resp
保存cookie的方法
响应对象.set_cookie(key,value,max_age)
key是cookie的名称
value是cookie的值
max_age:保存时间,是一个数字,默认单位是秒
获取cookie的方法
每次向服务器发送请求时,都会将本站点下的所有的cookie的数据封装到request中带到服务器上
通过 request.cookies 可以获取所有的cookie值,获取指定的cookie值可以用request.cookies[‘key’]
删除cookie的方法
响应对象.delete_cookie(‘key’)
2.session
session又叫做会话,当浏览器打开时,与一个服务器交互的完整过程就是一次会话,会话的目的是为了保存交互过程中所需要用到的信息,session保存在cookie中,只在会话期有效 浏览器一关闭 session就失效。
注:会话(session)的信息是保存在服务器上的。
栗子
flask代码

from flask import Flask,request,render_template,session
from flask_script import  Manager

app = Flask(__name__)
app.config['DEBUG'] = True
app.config['SECRET_KEY'] = 'session'
manager = Manager(app)

@app.route('/login',methods = ['GET','POST'])
def login():
    if request.method == 'POST':
        uname = request.form.get('uname')
        upwd = request.form['upwd']
        session['uname'] = uname
        session['upwd'] = upwd
        return '保存session成功'
    if request.method == 'GET':
        if 'uname' in session:
            print("用户名:",session.get('uname'))
            print("密码:",session['upwd'])
        return render_template('login.html')



if __name__ == '__main__':
    manager.run()

html代码

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <form action="/login" method="post">
            <p>
                用户名: <input type="text" name = 'uname'>
            </p>
            <p>
                密码:<input type="text" name = 'upwd'>
            </p>
            <input type="submit" value='提交'>
        </form>
    </body>
    </html>

在这里插入图片描述
在火狐浏览器中查看session的方法和cookies一样,在打开浏览器的时候只要保存了session,session就会一直存在(不被删除),关闭浏览器就会自动删除。
语法:
在flask中使用session首先要配置app的SECRET_KEY
app.config[‘SECRET_KEY’] = ‘任意字符串’
导包
from flask import session
向session中保存数据的方法
session[‘key’] = value
从session中获取数据的方法
value = session[‘key’]
session.get(‘key’,’’)
if ‘key’ in session:
从session中删除数据的方法
del session[‘key’]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值