一、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>