Python Flask中的jsonify

Python Flask中的jsonify#-*-coding:utf-8-*-#@Time:2022/4/1311:46下午#@Author:renwoxing#@File:flask_restful_demo.py#@Software:PyCharmfromflaskimportFlask,jsonify,abort,requestapp=Flask(__name__)books=[{‘id’:1,’name’.

大家好,又见面了,我是你们的朋友全栈君。

# -*- coding: utf-8 -*-
# @Time    : 2022/4/13 11:46 下午
# @Author  : renwoxing
# @File    : flask_restful_demo.py
# @Software: PyCharm

from flask import Flask, jsonify, abort, request

app = Flask(__name__)
books = [
    {
        'id': 1,
        'name': u'大学',
        'author': '张三',
        'price': 98
    },
    {
        'id': 2,
        'name': u'骆驼祥子',
        'author': '老舍',
        'price': 98
    }
]

@app.route("/bookstore/api/v1/books", methods=['GET'])
def get_books():
    return jsonify({'books': books})

if __name__ == '__main__':
    app.run(host="0.0.0.0", port="8000", debug=True)
  1. 根据函数说明:该函数在dumps函数上做了封装,变得更易用;
  2. 实际调用过程:
    jsonify调用下面的函数:
current_app.response_class(
        dumps(data, indent=indent, separators=separators) + "\n",
        mimetype=current_app.config["JSONIFY_MIMETYPE"],
    )

上面的dumps实际上是调用了itsdangerous 库json.dumps函数而已:

from itsdangerous import json as _json

    _dump_arg_defaults(kwargs, app=app)
    encoding = kwargs.pop("encoding", None)
    rv = _json.dumps(obj, **kwargs)
    if encoding is not None and isinstance(rv, text_type):
        rv = rv.encode(encoding)
    return rv

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142593.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Gradle 入门教程(一):Gradle是什么[通俗易懂]

    Gradle 入门教程(一):Gradle是什么[通俗易懂]这是一篇Gradle的入门教程一、Gradle是什么1.1构建工具要解释Gradle是什么,首先要搞清楚一个名词——构建工具(BuildTool)。构建工具,顾名思义就是用于构建(Build)的工具,构建包括编译(Compile)、连接(Link)、将代码打包成可用或可执行形式等等。如果不使用构建工具,那么对于开发者而言,下载依赖、将源文件编译成二进制代码、打包等工作都需要一步步地…

    2022年6月28日
    29
  • JRebel 热部署插件的安装使用

    JRebel 热部署插件的安装使用文章目录Jrebel简介JRebel的安装和使用idea安装JRebelJRebel的使用JRebel的激活Jrebel简介  当你修改doGet,doPost等一些内容时,你再次访问,访问到的内容不变,除非重启或重新加载class文件。  用Jrebel可快速实现热部署,节省了大量重启时间,提高了个人开发效率。JRebel的安装和使用idea安装JRebelNew->settings->plugins->Marketplace搜索插件jrebel进行安装或

    2022年5月22日
    32
  • 语音检测_自适应遗传算法

    语音检测_自适应遗传算法自适应回声消除算法欢迎留言交流AEC算法早期用在Voip,电话这些场景中,自从智能设备诞生后,智能语音设备也要消除自身的音源,这些音源包括音乐或者TTS机器合成声音。本文基于开源算法阐述AEC的原理和实现,基于WebRTC和speex两种算法,文末会附上两种算法的matlab实现。回声消除原理回声消除的基本原理是使用一个自适应滤波器对未知的回声信道:ω\omega进行参数辨识,根据扬声器信号与产

    2022年10月22日
    0
  • json对象与json字符串_字符数组与字符串的区别

    json对象与json字符串_字符数组与字符串的区别JSON对象有时候在做项目的时候时常将这两个概念弄混淆,尤其是在使用springmvc的时候,后台@RequestBody接受的是一个json格式的字符串,一定是一个字符串。先介绍一下json对象,首先说到对象的概念,对象的属性是可以用:对象.属性进行调用的。例如:varperson={“name”:”tom”,”sex”:”男”,”age”:”24″}//json对象console.l

    2022年10月7日
    0
  • from django.db import models_django项目部署

    from django.db import models_django项目部署前言APIView中的dispatch是整个请求生命过程的核心方法,包含了请求模块,权限验证,异常模块和响应模块,我们先来介绍请求模块请求模块:request对象源码入口APIView类中di

    2022年8月7日
    4
  • java 异步调用方法_java异步调用方法有哪些?如何实现异步调用?

    java 异步调用方法_java异步调用方法有哪些?如何实现异步调用?你知道java异步调用方法都有哪些吗?下面的文章内容,就对这方面的问题做了一下整理,一起来看看java异步调用的方法吧!1、利用Spring的异步方法去执行注:没有返回值在启动类又或者是配置类加上@EnableAsync注解。packageme.deweixu.aysncdemo;importorg.springframework.boot.SpringApplication;importo…

    2022年7月11日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号