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

总结:

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.csdn.net/jishuzhai_1208/article/details/79688381

猜你喜欢

转载自blog.csdn.net/JackLiu16/article/details/82557584
今日推荐