Flask-HelloWorld-10 session

Flask应用中Session的使用详解
本文介绍了session与cookie的主要区别,包括数据存放位置、安全性、服务器性能影响及存储大小限制。接着详细阐述了在Flask中使用session的三个步骤,并提供了代码示例。

一、session与cookie的区别

1、cookie数据存放在客户的浏览器上,session数据放在服务器上

2、cookie不安全,session相对安全

3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE

4、cookie存储的数据大小有限,单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

二、使用session的步骤

1、导入session包

2、设置session secret key

3、session添加数据 session['key']=value

三、代码示例

#coding=gbk

'''
    cookie 存在的问题
    cookie存放在客户端 安全性存在问题
    cookie存放的数据大小有限

    session 放在服务器端
    session的使用 导入session
    当成字典操作 session['key'] =
    首先设置安全key app.secret_key =
    然后设置  os.
'''
from flask import Flask,session,request,render_template,redirect

app = Flask(__name__)

#os.urandom(24)可以生成一个随机的24位的字符
#设置一个字符串
app.secret_key= '\xcd\xfe\xeb\xf1O\xd5\x0e\x8e[\xa3y\xaf\x06\xd2lwH\xba\xcf\x07\r\xab0\xa3'
#模拟数据库
userlist=['weixuan','nicholas']

@app.route('/login/',methods=['POST','GET'])
def login():
    #表单提交
    if request.method=='POST':
        username=request.form.get('username')
        if username in userlist:
            #session添加一个成员
            session['username'] = username
            return redirect('/index/')

    return render_template('login.html')

@app.route('/index/',methods=['POST','GET'])
def index():
    #从session中获取
    username=session.get('username')
    return render_template('index.html',username=username)

@app.route('/logout/',methods=['POST','GET'])
def logout():
    pass
if __name__ == '__main__':
    app.debug=True
    app.run()

#同时会有cookie产生,cookie的key就是session

login.html

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <form action="" method="post" enctype="multipart/form-data">
        username:<input type="text" name="username"><br>
        password:<input type="password" name="passwd"><br>
        headimg: <input type="file" name="headimg"><br>
        <input type="submit" value="OK">
    </form>
</body>
</html>


index.html

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>

    <h4>

        Welcome {{ username }}

    </h4>
</body>
</html>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值