python web开发-flask中response,cookies,session对象使用详解
Response响应对象:
当一个web请求被服务器处理完后,会返回用户请求的响应,这时候就要用到响应对象,根据响应给用户的形式不同,响应对象有以下几种处理方式
- 如果返回的是一个合法的响应对象,它会从视图直接返回。
- 如果返回的是一个字符串,响应对象会用字符串数据和默认参数创建。
- 如果返回的是一个元组,且元组中的元素可以提供额外的信息。这样的元组必须是(response, status, headers) 的形式,且至少包含一个元素。 status 值会覆盖状态代码, headers 可以是一个列表或字典,作为额外的消息标头值。
- 如果上述条件均不满足, Flask 会假设返回值是一个合法的 WSGI 应用程序,并转换为一个请求对象。
以上从引用官网的一段话,其实简单来说就是所有的响应都会生成一个合法的响应对象,我们平常用的最多的就是直接返回字符串或是返回一个template。最终都会被flask处理成response对象。
Cookies对象:
Cookies用于在客户端存储一些信息, 当flask应用响应用户请求时可以设置cookies的值,当用户请求flask应用时可以获取cookies的值。
简单来说,设置cookies的方式为:
responseObj.set_cookies(“xxx”) ,此处的responseObj是一个response的实例,xxx是cookies的名称
获取cookies的方式为
request.cookies.get(“xxx”),此处的request是全局request对象,xxx是cookies的名称
下面通过一个例子来说明cookies的使用
- 创建一个设置cookies的方法:
@app.route("/setCookies")def setCookies():res = make_response("this page will set a cookies")res.set_cookie("myCookies","my first cookies")return res
注:需要import make_response方法
2. 创建一个获取cookies的方法
@app.route("/getCookies")def getCookies():myCookies = request.cookies.get("myCookies")return myCookies
3. 测试应用
访问 /setCookies 方法
访问/getCookies方法
Session对象:
它允许你在不同请求间存储特定用户的信息。它是在 Cookies 的基础上实现的,并且对 Cookies 进行密钥签名。这意味着用户可以查看你 Cookie 的内容,但却不能修改它,除非用户知道签名的密钥。
Session可以通过session[‘xxx’]=’yyy’进行设置,其中xxx是key值,yyy是session的value。
通过session.pop(‘xxx’,none)把key是xxx的session移除
一般用session进行用户是否登录的验证
下面举例来说明:
- 设置session
使用下面的代码
@app.route("/setSession")def setSession():session["userName"] = "my session"return session["userName"]
使用session时要先设置app_secret不然会报错:
RuntimeError: The session is unavailable because no secret key was set. Set the secret_key on the application to something unique and secret.
在调用此代码之前加上secret_key的设置
app.secret_key = "1234"
安全起见,secret_key要设置的复杂一些,这里演示用就简单设置了。
2. 验证session
代码如下:
@app.route("/checkSession")def checkSession():if "userName" in session:return "userName exist"else:return "userName lost"
3. 移除session
代码如下:
@app.route("/removeSession")def removeSession():session.pop("userName",None)return "remove session!"
- 验证
访问/setSession
验证session 访问/checkSession
证明session存在
下一步,移除session
然后我们再次验证session。
Session已丢失
转载于:https://www.cnblogs.com/itxb/p/8616607.html
python web开发-flask中response,cookies,session对象使用详解相关推荐
- python web开发-flask中日志的使用
Flask使用日志记录的方式: 初始化flask应用实例 在flask中使用logger,需要初始化一个flask的应用 app = Flask(__name__) 2. 调用logger 直接调用l ...
- python web开发-flask中消息闪现flash的应用
Flash中的消息闪现,在官方的解释是用来给用户做出反馈.不过实际上这个功能只是一个记录消息的方法,在某一个请求中记录消息,在下一个请求中获取消息,然后做相应的处理,也就是说flask只存在于两个相邻 ...
- python post json参数,Python requests.post方法中data与json参数区别详解
在通过requests.post()进行POST请求时,传入报文的参数有两个,一个是data,一个是json. data与json既可以是str类型,也可以是dict类型. 区别: 1.不管json是 ...
- Python 3.7.1 中 namedtuple 具名元组基本用法详解
Python 3.7.1 中 namedtuple 具名元组基本用法详解 转载请注明出处:https://blog.csdn.net/jpch89/article/details/84645251 文 ...
- java中的session对象,Java对象中Response与session对象的方法是什么?
广州达内Java培训小编了解到Java对象种类很多,有的小伙伴最不清楚的就是Response与session对象的方法,下面小编就搜集Response与session对象的方法供大家阅读.当一个客户首 ...
- python中文读音ndarray-numpy中的ndarray方法和属性详解
NumPy数组的维数称为秩(rank),一维数组的秩为1,二维数组的秩为2,以此类推.在NumPy中,每一个线性的数组称为是一个轴(axes),秩其实是描述轴的数量.比如说,二维数组相当于是一个一维数 ...
- python支持向量机回归_Python中支持向量机SVM的使用方法详解
除了在Matlab中使用PRTools工具箱中的svm算法,Python中一样可以使用支持向量机做分类.因为Python中的sklearn库也集成了SVM算法,本文的运行环境是Pycharm. 一.导 ...
- python flask教程百度云,Python Web框架Flask中使用百度云存储BCS实例
对于部署在百度应用引擎BAE上的项目,使用百度云存储BCS(Baidu Cloud Storage)是不错的存储方案. 百度云存储已有Python SDK,对它进行简单封装后,就可以直接在Flask中 ...
- Java Web学习总结(40)——JSP中的Application对象和Session对象常用方法详解
一.applicaton表示一个javax.servlet.ServletContext对象. 他实现了用户间数据的共享,可存放全局变量.它开始于服务器的启动,直到服务器的关闭,在此期间,此对象将一直 ...
最新文章
- 关于“编程的本质”的探讨
- 一文彻底理解Java单元测试
- 新手第四课-PaddlePaddle快速入门
- 通过pyinotify实现文件的监控,包括监控文件是否传输完成
- 为什么使用Maven
- java中生成不重复随机的数字
- python asyncore
- SpringBoot和RabbitMQ集成
- Spring IOC容器和Bean的配置
- 大数据分析需备哪些技能
- 请不要嘲笑有梦想的罗永浩
- 记事狗微博php,记事狗微博系统_366rtc
- oracle查询dictionary,Oracle的DICTIONARY/DICT视图。
- 天池竞赛:Docker 基本操作
- 主板、内存条、硬盘、显卡认识和选购
- 剑网3一直连接不上服务器,win10系统剑网3连不上服务器的解决方案
- 心电图学习笔记(1)
- BuaaCoding 001-025 Problems and Solutions
- 离散题目10(判断是否为满射函数 )
- java最新手机号正则校验
热门文章
- android xe 调用 java,Delphi XE6 for Android 让手机震动(调用Java的函数)
- html action不起作用,Html.ActionLink做为按钮或图像,而不是连接
- mfc140dll 丢失 微软常用运行库_集成最新运行库、一键安装、一键到位,运行库操作简单!...
- 从mysql读取数据保存成excel_小程序读取excel表格数据,并存储到云数据库
- 鼠标右键转圈圈_win10系统右键一直转圈
- 【若依(ruoyi)】向DAO中传递动态参数
- java用mvvm,[Java教程]MVVM架构~使用boxy和knockoutjs实现编辑功能
- fiddler如何设置过滤https_Google Analytics如何设置含有过滤器的帐户数据视图
- linux中original_如何在 Linux 中整理磁盘碎片
- mysql下载备份数据库命令行,如何从MariaDB数据库备份和还原命令行