python response对象_python web开发-flask中response、cookies、session对象使用详解

Response响应对象:

当一个web请求被服务器处理完后,会返回用户请求的响应,这时候就要用到响应对象,根据响应给用户的形式不同,响应对象有以下几种处理方式

1. 如果返回的是一个合法的响应对象,它会从视图直接返回。

2. 如果返回的是一个字符串,响应对象会用字符串数据和默认参数创建。

3. 如果返回的是一个元组,且元组中的元素可以提供额外的信息。这样的元组必须是(response, status, headers) 的形式,且至少包含一个元素。 status 值会覆盖状态代码, headers 可以是一个列表或字典,作为额外的消息标头值。

4. 如果上述条件均不满足, 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():

res = make_response()

res.set_cookie(,)

res

注:需要import make_response方法

2. 创建一个获取cookies的方法

@app.route()

getCookies():

myCookies = request.cookies.get()

myCookies

3. 测试应用

访问 /setCookies 方法

eff87bf4c343b7123780689ff3e7724a.png

访问/getCookies方法

4476072fd3dde7b4e9e07885d8075dcf.png

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():

session[] = session[]

使用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():

session:

:

3. 移除session

代码如下:@app.route()

removeSession():

session.pop(,)

4. 验证

访问/setSession

1e6f2bbf90660989b6345abca141b8f4.png

验证session 访问/checkSession

ed8dbc2a791810b573522c2e4ca291bd.png

证明session存在

下一步,移除session

e68b9d100a0a31a96d6fd743fb51f302.png

然后我们再次验证session。

0857fbe4746cbca93d4fd363bb49c017.png

Session已丢失

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值