Flask  response 对象详情

在 Flask 中,响应使用 Response 对象表示,响应报文中的大部分内容由服务器处理,一般情况下,我们只负责返回主体内容即可。在之前的文章中,我们了解到 Flask 会先匹配请求 url 的路由,调用对应的视图函数,视图函数的返回值构成了响应报文的主体内容。

如果视图函数只返回一个元素的话,Flask 会创建 Response 对象,Response将该返回值作为主体内容,状态码默认为200,MIME 的类型为text/html,然后返回该 Response 对象。

其实视图函数可以返回最多由个元素组成的元组:响应主体、状态码、首部字段。我们也可以指定这三个元素的值。

@app.route('/hello1')

def hello1():

    return 'Hello 1'  

    # 等价于返回 Response('Hello 1', status=200, mimetype='text/html')

@app.route('/hello2')

def hello2():

    return 'Hello 2', 201, {'my-headers': 'tigeriaf'}

上面hello2()视图函数返回一个元组,那么状态码 status 值会覆盖默认的200状态码,headers 可以是一个列表或者字典,作为额外的消息头。

其实我们也可以先构建 Response 响应对象,设置一些参数(比如状态码,响应头等)后,然后直接返回Response 响应对象。

@app.route('/hello3')

def hello3():

    response = make_response('hello 3', 202)

    response.headers["my-headers"] = "tigeriaf"

    return response

make_response()方法就是用来构建response对象的,第二个参数表示响应状态码,默认是200。

之前的案例都是返回的纯文本格式,但是在实际开发中一般都是返回 json 格式,那该怎么做呢?

我们都知道 Python 标准库中的json模块为程序提供了 JSON 格式支持,Flask 也在json包的基础上做了一些功能的封装,我们可以直接导入 Flaskjson 包,将数据序列化为 json 类型返回,再把Response 对象的 MIME 类型修改为applcation/json即可。

@app.route('/hello4')

def hello4():

    data = {

        "status": 0,

        "message": "success",

        "data":

            {"name": "tigeriaf",

             "age": 24

             }

    }

    json_data = json.dumps(data)

    response = make_response(json_data)

    response.mimetype = "applcation/json"

    return response

除此之外,Flask 还提供了更方便的jsonify()方法,我们仅需要传入数据或者参数等,它会对我们传入的数据进行序列化,转换成 JSON 字符串作为响应的主体,然后生成一个响应对象,并且自动设置 MIME 类型,

如下:

@app.route('/hello4')

def hello4():

    data = {

        "status": 0,

        "message": "success",

        "data":

            {"name": "tigeriaf",

             "age": 24

             }

    }

    return jsonify(data)

可见,jsonify()方法大大简化了我们的代码,而且jsonify()方法接收多种形式的参数,可以传入普通参数,也可以传入关键字参数,使用非常方便。

到此这篇关于 Flask  response 对象详情的文章就介绍到这了,更多相关 Flask  response 对象内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例

    本文实例讲述了Flask框架重定向,错误显示,Responses响应及Sessions会话操作.分享给大家供大家参考,具体如下: 重定向和错误显示 将用户重定向到另一个端点,使用redirect(), 要提前中止错误请求,请使用abort()函数 from flask import abort, redirect, url_for @app.route('/') def index(): return redirect(url_for('login')) @app.route('/login')

  • Flask response响应的具体使用

    目录 引言 response响应 元组形式响应 make_response函数 返回json格式数据 其他特殊响应 redirect() 重定向 abort() 中断 源代码 引言 客户端发送 http 请求给 Flask程序,Flask 调用视图函数后,会将其返回值作为响应的内容.大多情况下,响应就是一个简单的字符串,作为 Html 页面回送客户端. 但 http 协议需要的不仅是作为请求响应的字符串.http 响应中有一个很重要的部分是状态码,Flask设为200,代表请求已被成功处理. r

  • Flask  response 对象详情

    在 Flask 中,响应使用 Response 对象表示,响应报文中的大部分内容由服务器处理,一般情况下,我们只负责返回主体内容即可.在之前的文章中,我们了解到 Flask 会先匹配请求 url 的路由,调用对应的视图函数,视图函数的返回值构成了响应报文的主体内容. 如果视图函数只返回一个元素的话,Flask 会创建 Response 对象,Response将该返回值作为主体内容,状态码默认为200,MIME 的类型为text/html,然后返回该 Response 对象. 其实视图函数可以返回

  • Flask  request 对象详情

    目录 1.request请求对象 1.1request请求对象的使用 前言: 一个完整的 HTTP 请求,包括客户端向服务端发送的 Request 请求和服务器端发送的 Response 响应.为了能方便的访问获取请求及响应报文信息,Flask 框架提供了一些内建对象,下面就来说一下 Flask 针对请求提供的内建对象request. 1.request请求对象 request请求对象封装了从客户端发来的请求报文信息,我们能从request对象上获取请求报文中的所有数据. 其大部分功能是由依赖包

  • Flask  request 对象介绍

    目录 1.request请求对象 1.1request请求对象的使用 前言: 一个完整的 HTTP 请求,包括客户端向服务端发送的 Request 请求和服务器端发送的 Response 响应.为了能方便的访问获取请求及响应报文信息,Flask 框架提供了一些内建对象,下面就来说一下 Flask 针对请求提供的内建对象request. 1.request请求对象 request请求对象封装了从客户端发来的请求报文信息,我们能从request对象上获取请求报文中的所有数据. 其大部分功能是由依赖包

  • JSP的response对象的实例详解

    JSP的response对象的实例详解 一 response对象 response对象包含了响应客户请求的有关信息,但在JSP中很少直接用到它.它是HttpServletResponse类的实例.response对象具有页面作用域,即访问一个页面时,该页面内的response对象只能对这次访问有效,其他页面的response对象对当前页面无效. 二 response对象常用的方法 三 实战 <%@ page language="java" import="java.ut

  • JSP response对象实现文件下载的两种方式

    一.JSP隐含对象response实现文件下载的介绍 (1)在JSP中实现文件下载最简单的方法是定义超链接指向目标资源,用户单击超链接后直接下载资源,但直接暴露资源的URL 也会带来一些负面的影响,例如容易被其它网站盗链,造成本地服务器下载负载过重. (2)另外一种下载文件的方法是使用文件输出流实现下载,首先通过response报头告知客户端浏览器,将接收到的信息另存 为一个文件,然后用输出流对象给客户端传输文件数据,浏览器接收数据完毕后将数据另存为文件,这种下载方法的优点是服 务器端资源路径的

  • response对象的使用(实例讲解)

    1.使用response对象提供的sendRedirect()方法可以将网页重定向到另一个页面.重定向操作支持将地址重定向到不同的主机上,这一点与转发是不同的.在客户端浏览器上将会得到跳转地址,并重新发送请求链接.用户可以从浏览器的地址栏中看到跳转后的地址.进行重定向操作后,request中的属性全部失效,并且开始一个新的request对象. sendRedirect()方法的语法格式如下: response.sendRedirect(String psth); 例子:新建一个index.jsp

  • asp.net内置对象 Response对象使用介绍

    Response对象是HttpRespone类的一个实例.该类主要是封装来自ASP.NET操作的HTTP相应信息.Response对象将数据作为请求的结果从服务器发送到客户浏览器中,并提供有关响应的消息.它可用来在页面中输出数据,在页面中跳转,还可以传递各个页面的参数. 一.向页面中输出数据 语法格式        Response对象通过Write方法或WriteFile方法在页面输出数据,输出的对象可以是字符,字符串,字符数组,对象或文件.        用Response输出数据时,ASP

  • asp页面提示Response 对象 错误 ASP 0156 : 80004005 HTTP 头错误

    其实这类问题就是因为缓存问题,大家可以参考下面的方法解决: 有些ASP页面第一次打开的时候会出现Response 对象 错误 'ASP 0156 : 80004005' HTTP 头错误,但刷新后又正常了,解决方法如下 复制代码 代码如下: Response.Buffer = True '应该是这行,去掉就ok '如果还不行就把 Response.Buffer = True Response.ExpiresAbsolute = Now() - 1 Response.Expires = 0 Res

  • Jsp中response对象的所有属性详细介绍

    所属接口:javax.servlet.http.HttpServletResponse,其父接口是ServletResponse,而且ServletResponse也现在只有唯一一个HttpServletResponse子接口,主要原因是,现在的J2EE的WEB程序主要以HTTP协议为主要通讯协议. response对象的功能: 1. setHeader( String name , String value )  设置指定的HTTP文件的值,如果该值已经存在,则新值会覆盖原有的旧值.  设置头

随机推荐