Flask 中return为啥要make_response一下?

<作为初学者的 · 我们只有细细的探索和了解下才能慢慢地培养我们编码的乐趣,提高我们code的兴趣>,同时我们心中的邪念也会摒弃掉,code在我们心中发芽。                                -张新政

我们为什么要用make_response()函数将字符串 字典 元组 对象等转换为一个响应对象?不转换会怎么样?为什么必须要转换?

        在Flask中,我们可以直接返回字符串、字典、元组等对象作为响应。但是,为了更好地控制响应的状态码、头部信息和内容类型等,我们通常会使用make_response()函数将这些对象转换为一个响应对象。

        如果不使用make_response()函数进行转换,那么Flask会默认将返回的对象视为一个字符串,并将其作为响应的内容返回。这样做的话,我们就无法对响应进行更细致的控制,例如设置状态码、添加头部信息、设置内容类型等。

        通过使用make_response()函数,我们可以将1 字符串、2 字典、3 元组、 4对象转换为一个响应对象,从而可以对响应进行更多的操作和设置。我们可以通过设置响应对象的属性来修改状态码、添加头部信息,还可以使用response.set_cookie()方法设置cookie等。

        因此,使用make_response()函数将字符串、字典、元组等转换为一个响应对象,可以让我们更加灵活地控制和定制响应的内容和属性

【works citation】 Copied from C知道

代码源码copied from 编程浪子的flask小程序点餐系统

    response = make_response(json.dumps({'code':200, 'msg':'登录成功~~'}))
    response.set_cookie( app.config['AUTH_COOKIE_NAME'], '%s#%s' % (
        UserService.geneAuthCode(user_info), user_info.uid), 60 * 60 * 24 * 120)   # 保存120填
    return response

json.dumps()函数的作用是将 Python对象 转换为 JSON格式的字符串。它可以将字典、列表等Python对象转换为JSON字符串,以便在 网络传输或存储时使用。

不用json.dumps 可以吗? 为什么非要用json.dumps?

        可以不使用json.dumps(),但是使用json.dumps()可以将 Python对象 转换为 JSON格式的字符串。在这个例子中,使用json.dumps()将字典对象转换为JSON字符串,然后将其作为响应的内容返回给客户端。这样做的好处是可以确保响应的内容是符合JSON格式的,方便客户端进行解析和处理。

        如果不使用json.dumps(),直接将字典对象 作为响应的内容返回,那么客户端在接收到响应后 可能 需要手动解析响应内容,这样会增加客户端的工作量,并且可能会出现解析错误的情况。 

        所以,使用json.dumps()可以确保响应内容的格式正确,并且方便客户端进行解析和处理。

set_cookie()函数用于 设置响应对象的cookie。它接受多个参数,其中包括cookie的名称、值、过期时间等。通过调用set_cookie()函数,可以将cookie添加到响应对象中,并在客户端保存。

  • 8
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xinzheng新政

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值