#coding:utf8
"""
cookie: 用来记录用户和服务器的交互数据,比如,链接的状态信息,sessionID,csrf_token, 由服务器进行设置
cookie的设置: reponse.set_cookie(key,value,maxAge): maxAge表示过期时间, 如果不设置默认一次回话结束
cookie的获取: request.cookies[key]
"""
from flask import Flask
from flask import make_response
from flask import request
app=Flask(__name__)
@app.route('/set_cookie')
def set_cookie():
response=make_response('nihao')
response.set_cookie('name','hongqi',200) #有三个参数
response.set_cookie("age", '13')#不注明时间,关闭浏览器就自动销毁数据
# 在cookie中,只能用字符串
# response['h']='nihao'
return response
@app.route('/get_cookie')
def get_cookie():
# name=request.cookies['name']
# #这两种写法都行如果使用中括号的形式获取,不存在就会报错, 如果使用get,不存在返回none
name=request.cookies.get('name')
age=request.cookies.get('age')
return "name is %s,name is %s" %(name,age)
if __name__ == '__main__':
app.run('127.0.0.1',5000,debug=True)上图是flask中set_cookie《创建》
设置cookie
方法一:
创建对象 make_response的对象
调用对象 的set_cookie方法设置cookie
方法二:
直接设置表单头
除了键值对,其他部分可去浏览器检查摘抄
resp.headers["Set-Cookie"] = "HONG=python3; Expires=Mon, 27-Nov-2017 07:57:17 GMT; Max-Age=3600; Path=/"
与resp.cookies.get('键')《查询》或者是resp.cookies['键']
补充:
还有cookie的删除:
1) 可以通过在浏览器中设置来清除cookie.
(2) 使用Response的set_cookie进行清除
- @app.route('/del_cookie')
- def del_cookie():
- response=make_response('delete cookie')
- response.set_cookie('Name','',expires=0)
- return response
(3)使用Response的 delete_cookie方法.
- @app.route('/del_cookie2')
- def del_cookie2():
- response=make_response('delete cookie2')
- response.delete_cookie('Name')
- return response
#coding:utf8
"""
session: 用来存储客户的铭感信息, 比如:密码,状态信息等, 浏览器访问,服务器存储
设置session: session[key] = value
获取session: session[key], session.get(key)然后获取session 里面的值,看看是否存在。
那么如何删除session呢?
可以直接使用session.pop('key',None) 即:
session.pop('name',None)
如果要删除session中所有数据使用:clear()即:
session.clear()//Session 也可以设置过期时间:
app.config=["PERMANENT_SESSION_LIFETIME"]=10

下面这个方法可以用
from datetime import timedelta
session.permanent = True
app.permanent_session_lifetime = timedelta(minutes=5)
session['key'] = value#coding:utf8
"""
session: 用来存储客户的铭感信息, 比如:密码,状态信息等, 浏览器访问,服务器存储
设置session: session[key] = value
获取session: session[key], session.get(key)
// session 这个东西有没有过期时间啊
注意点:
1. session空间的编号sessionID,会存储在cookies
2. sessionID的生成依赖于SECRET_KEY
"""""
from flask import Flask
from flask import session
app=Flask(__name__)
app.config["SECRET_KEY"] = "fjkdjfkdfjkdjfkdjkfjd" #必须要有
@app.route('/set_session')
def set_session():
session['class']='seven'
# ???
# from datetime import timedelta
# session.permanent = True
# app.permanent_session_lifetime = timedelta(seconds=30)
return "helloworld"
@app.route('/get_session')
def get_session():
var=session['class']
return var
if __name__ == '__main__':
app.run(debug=True)然后获取session 里面的值,看看是否存在。
那么如何删除session呢?可以直接使用session.pop('key',None) 即:
session.pop('name',None)
如果要删除session中所有数据使用:clear()即:
session.clear()
比较下session['key']或者是session.get('key')的区别,就是前者没有取到值就报错,后者不会报错
session中的Name是一个字段表示一个session,value是服务器中的一个session_id。

本文介绍在Flask框架中如何使用cookie和session进行用户数据管理,包括设置、获取和删除cookie及session的方法,并解释了它们的工作原理。
749

被折叠的 条评论
为什么被折叠?



