<作为初学者的 · 我们只有细细的探索和了解下才能慢慢地培养我们编码的乐趣,提高我们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添加到响应对象中,并在客户端保存。