django和flask中保持状态的比较(session和cookie)

本文对比了Django和Flask框架中的会话(session)管理方式,包括session和cookie的区别,如何设置和获取session信息,以及如何在两个框架中进行session的配置和操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总结:

django session存储在服务端,客服端只有session_id。

无需关心session和session_id怎么对应,只需关心自己存储的标识 username  age

不过请求中还是得带上session_id,django根据session_id拿到session_data放到session对象中,供你在这个请求中获取

request.session['username']

 

"""设置session信息"""

request.session['username'] = 'smart'

request.session['age'] = 18
"""获取session信息"""

username = request.session['username']

age = request.session['age']

 

 

 

 

语法比较,设置cookie都必须建立在response或其子类的基础上.

flask

    cookie设置

 
  1. from flask import Flask, make_response

  2. # 创建response对象

  3. response = make_response('index')

  4.  
  5. # 使用response对象写入cookie到浏览器,会话结束就过期

  6. response.set_cookie('name','zxc')

  7. # 设置过期时间,单位是秒

  8. response.set_cookie('age', '18', max_age=3600)

  9. # 删除cookie

  10. response.delete_cookie('name')

    session设置

    在flask中必须配置密钥参数,因为要对sessionid加密.   django中则不用,在settings中已经配置好了.

 
  1. from flask import Flask, session

  2. # 配置秘钥参数

  3. app.config['SECRET_KEY'] = 'n%lq5-oyhv0not14+xv4m=q-@^kt1ptzst5)w$1@o*)=ose&nv'

  4. # 设置session

  5. session.permanent = True

  6. session['name'] = 'zxc'

  7. # 读取session

  8. name = session['name']

  9. # 删除session

  10. session.pop('name')

django

cookie

 
  1. """设置cookie信息"""

  2. response = HttpResponse('设置cookie信息')

  3. # 设置cookie信息, 'name':'smart' 'age':18

  4. # response.set_cookie('name', 'smart')

  5. # response.set_cookie('age', 18)

  6.  
  7. # 设置cookie信息, 'name':'smart' 'age':18, 并且设置过期时间为1周

  8. response.set_cookie('name', 'smart', max_age=7*24*3600)

  9. response.set_cookie('age', 18, max_age=7*24*3600)

  10. """获取cookie信息"""

  11. # 获取cookie name和age

  12. name = request.COOKIES['name']

  13. age = request.COOKIES['age']

 
  1.     response.delete_cookie('username')

  2. return HttpResponse('读取cookie信息:%s %s' % (name, age))

session

 
  1. """设置session信息"""

  2. # 设置session username:smart age:18

  3. request.session['username'] = 'smart'

  4. request.session['age'] = 18

  5. # 设置session 60秒之后过期

  6. request.session.set_expiry(60)

  7. """获取session信息"""

  8. username = request.session['username']

  9. age = request.session['age']

    清除session的几种方式

    

出处:https://blog.youkuaiyun.com/jishuzhai_1208/article/details/79688381

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值