Flask  response 对象详情

 更新时间:2021年11月25日 12:50:22   作者:tigeriaf  
在 Flask 中,响应使用 Response 对象表示,响应报文中的大部分内容由服务器处理,一般情况下,我们只负责返回主体内容即可。在之前的文章中,我们了解到 Flask 会先匹配请求 url 的路由,调用对应的视图函数,视图函数的返回值构成了响应报文的主体内容。

在 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 对象内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python 20行简单实现有道在线翻译的详解

    Python 20行简单实现有道在线翻译的详解

    这篇文章主要介绍了Python实现有道在线翻译的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • Python中的Networkx的基本使用

    Python中的Networkx的基本使用

    Networkx是一个Python的包,可以用来创建和处理复杂的图网络结构,这篇文章主要介绍了Python中的Networkx详解,需要的朋友可以参考下
    2023-02-02
  • numpy数据类型dtype转换实现

    numpy数据类型dtype转换实现

    这篇文章主要介绍了numpy数据类型dtype转换实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 基于Python编写一个宝石消消乐小游戏

    基于Python编写一个宝石消消乐小游戏

    快过年回家啦用,本文将为大家介绍一个用python编写的宝石消消乐游戏用来哄小朋友,文中的示例代码讲解详细,感兴趣的小伙伴可以学习一下
    2022-01-01
  • pytest解读fixture有效性及跨文件共享fixtures

    pytest解读fixture有效性及跨文件共享fixtures

    这篇文章主要为大家介绍了pytest官方文档fixture有效性及跨文件共享fixtures的解读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • Python随机函数库random的使用方法详解

    Python随机函数库random的使用方法详解

    这篇文章主要介绍了Python随机函数库random的使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • python实现图片处理和特征提取详解

    python实现图片处理和特征提取详解

    这篇文章主要介绍了python实现图片处理和特征提取详解,文中向大家分享了Python导入图片,将图像转化为二维矩阵,模糊化图片等Python对图像的操作,具有一定参考价值,需要的朋友可以了解下。
    2017-11-11
  • Python Selenium中常用的元素定位方法总结

    Python Selenium中常用的元素定位方法总结

    在Web自动化测试中,元素定位是一项非常重要的技术,Python Selenium提供了各种元素定位方法,可以帮助我们定位页面上的元素并与之交互,本文将详细介绍Python Selenium中常用的元素定位方法,并提供实例代码,需要的朋友可以参考下
    2023-11-11
  • 详解python中文编码问题

    详解python中文编码问题

    一直以来python中文编码是个及其头大的问题,需要好好学习下,我用python为例,简单介绍下python编程时如何处理好中文编码的问题,感兴趣的朋友们可以参考下
    2021-06-06
  • Python局部函数及用法详解(含nonlocal关键字)

    Python局部函数及用法详解(含nonlocal关键字)

    局部函数有哪些特征,在使用时需要注意什么呢?接下来就给读者详细介绍 Python 局部函数的用法,对Python局部函数相关知识感兴趣的朋友跟随小编一起看看吧
    2022-12-12

最新评论