cookies
# 首页
@blue.route('/')
@blue.route('/home/') # 装饰器可以用多个,这两个路由都能访问到home函数
def home()
# 4. 获取cookie
username = request.cookies.get('user')
return render_template('home.html', username =username)
# 登陆
@blue.route('/login/', method = ['GET', 'POST'])
def login():
# GET: 访问登陆页面
if request.method == 'GET':
return render_template('login.html')
# POST: 实现登录功能
elif request.method == 'POST':
pass
# 1. 获取前端提交过来的数据
username = request.form.get('username')
password = request.form.get('username')
# 2. 模拟登陆: 用户名和密码验证
if username=='lisi', and password=='123':
# 登陆成功
response = redirect('/home/')
# 3. 设置cookie
# cookie不能用中文
# response.set_cookie('user', username) # 默认浏览器关闭则 cookie失效
# 过期时间:
# max_age: 秒
# expires: 指定的datetime日期
# response.set_cookie('user', username, max_age=3600*24*7)
response.set_cookie('user', username, expires=datetime.datetime(2023,12,12)
return response
else:
return '用户名或密码错误!'
# 注销
@blue.route('/logout/')
def logout():
response = redirect('/home/') # 用户点注销的时候需要重定向页面,重新走到登陆函数去获取cookie,没有获取到就到登陆页面
# 5. 删除cookie
response.delete_cookie('user')
return response
源码:
key、value、过期时间二选一,三者必填
session
# 服务器端回话技术,依赖于cookie
特点:
- 服务端的回话技术
- 所有数据存储在服务器中
- 默认存储在内存中
- 存储结构也是key-value形式,键值对
- session 是离不开cookie的
Flask中的session是全局对象
(之前的request也是Flask的一个全局对象)
常用操作:
设置session
session['key'] = 'value'
获取session
session.get(key, default=None)根据键获取会话的值
删除session
session.pop(key) 删除某一值
session.clear() 清除所有 慎用,会全清空
# 首页
@blue.route('/')
@blue.route('/home/') # 装饰器可以用多个,这两个路由都能访问到home函数
def home()
# 获取session
username = session.get('user')
return render_template('home.html', username =username)
# 登陆
@blue.route('/login/', method = ['GET', 'POST'])
def login():
# GET: 访问登陆页面
if request.method == 'GET':
return render_template('login.html')
# POST: 实现登录功能
elif request.method == 'POST':
pass
# 1. 获取前端提交过来的数据
username = request.form.get('username')
password = request.form.get('username')
# 2. 模拟登陆: 用户名和密码验证
if username=='lisi', and password=='123':
# 登陆成功
response = redirect('/home/')
# 设置sesssion
session['user'] = username
session.permanent = True # 让session的过期时间生效
return response
else:
return '用户名或密码错误!'
# 注销
@blue.route('/logout/')
def logout():
response = redirect('/home/') # 用户点注销的时候需要重定向页面,重新走到登陆函数去获取cookie,没有获取到就到登陆页面
# 删除session
session.pop('user')
return response
还需要在init.py 进行session的配置
print(app.config) # flask配置信息
app.config['SECREY_KEY'] = 'abc123' # 用于加密
# 设置session过期时间
app.config['PERMANENT_SESSION_LIFETIME'] = datetime.timedelta(days=31)
cookie和session的区别
cookie:
1,在浏览器存储
2,安全性较低
3,可以讲清服务器压力
session:
1,在服务器端存存储
2,安全性高
3,对服务器要求较高
4,依赖cookie
标签:username,cookies,return,Flask,会话,session,cookie,home,response From: https://www.cnblogs.com/jiqiong/p/17449221.html