引言 本文将介绍在Flask中操作cooie、session的相关流程、常用方法 学习内容:

  • cookie:依赖库(Flask内置)、常用方法
  • session:依赖库(Flask内置)、前提条件(已设置:app.secret_key=”指定secret_key”)、常用方法

说明本文是基础操作cookie、session,不会涉及session的持久化。

https://e.coding.net/cooling37/mp-flask/mp-api.git

1.概述

5.Flask操作cookie、session - 图2

2.Flask操作cookie

在Flask中操作cookie,我们需要依赖make_response()对象。借用make_response()对象的set_cookie()【设置cookie】、delete_cookie【删除cookie】进行相关操作。

1.操作流程介绍

5.Flask操作cookie、session - 图3

2.常用方法

操作项 方法 备注
设置cookie make_response().set_cookie(key,value) 对cookie的操作都需要依赖“make_response()对象”
删除cookie make_response().delete_cookie(key)

3.代码实现

1.设置cookie

1.具体代码实现
  1. from flask import Blueprint as bp
  2. from flask import make_response # 【step1】导包
  3. cookieKey = "mp-cookie"
  4. cookieApp = bp("cookieApp", __name__, url_prefix="/cookie") #定义蓝图对象
  5. @cookieApp.get("/set")
  6. def set_cookie():
  7. # 【step2】定义:response对象
  8. resp = make_response("设置cookie")
  9. # 【step3】实现具体的cookie操作(设置cookie)
  10. resp.set_cookie(cookieKey, "myFlaskCookie-2022")
  11. # 【step4】返回response对象
  12. return resp

2.运行结果

image.png

2.删除cookie

1.具体代码实现
  1. from flask import Blueprint as bp
  2. from flask import make_response # 【step1】导包
  3. cookieKey = "mp-cookie"
  4. cookieApp = bp("cookieApp", __name__, url_prefix="/cookie") #定义蓝图对象
  5. @cookieApp.get("/set")
  6. def set_cookie():
  7. # 【step2】定义:response对象
  8. resp = make_response("设置cookie")
  9. # 【step3】实现具体的cookie操作(设置cookie)
  10. resp.set_cookie(cookieKey, "myFlaskCookie-2022")
  11. # 【step4】返回response对象
  12. return resp
  13. @cookieApp.get("/delete")
  14. def delete_cookie():
  15. # 【step2】定义:response对象
  16. resp = make_response("删除cookie")
  17. # 【step3】实现具体的cookie操作(设置cookie)
  18. resp.delete_cookie(cookieKey)
  19. # 【step4】返回response对象
  20. return resp
  21. if __name__ == '__main__':
  22. pass

2.运行结果

image.png

3.Flask操作session

注意 操作session—>前提(已设置)app.secret_key=”指定secret_key”

1.操作流程介绍

5.Flask操作cookie、session - 图6

2.常用方法

操作项 方法 备注
设置session session[‘key’]=’value’ 对session的操作都需要依赖“flask的session”
导包from flask import session
获取session 方式1 session1=session[‘key’]
方式2 session2=session.get(‘key’)
删除session session.delete(‘key’)
清空session session.clear()

3.代码实现

  1. #!/usr/bin/env pytho
  2. # -*- coding: utf-8 -*-
  3. """
  4. @author:cooling
  5. @file:session.py
  6. @time:2022/04/18
  7. """
  8. from flask import Blueprint as bp
  9. # 【step1】导包
  10. from flask import session, make_response
  11. import time
  12. sessionApp = bp("sessionApp", __name__, url_prefix="/session")
  13. @sessionApp.get("/set")
  14. def set_session():
  15. response = make_response("设置session")
  16. session['name'] = 'mp-session'
  17. # time.sleep(5)
  18. return "return set session"
  19. @sessionApp.get("/get")
  20. def get_session():
  21. session_name = session['name']
  22. print(session_name)
  23. return str("hello:\t" + session_name)
  24. @sessionApp.get("pop")
  25. def pop_session():
  26. session.pop('name')
  27. return "pop-session"
  28. @sessionApp.get("clear")
  29. def clear_session():
  30. session.clear()
  31. return "clear-session"
  32. if __name__ == '__main__':
  33. pass