Flask 返回 Json

一、Flask 返回 Json 科学计数法

在 Flask 中,我们可以通过 jsonify 方法返回 Json 数据。对于数字类型的数据,在传输过程中会出现科学计数法的情况。下面我们来看一个例子:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/')
def index():
    data = {
        "large_number": 12345678901234567890
    }
    return jsonify(data)

if __name__ == '__main__':
    app.run()

这时候,我们访问到网页上的数据会出现:

{
    "large_number": 1.2345678901234568e+19
}

这种情况下,我们可以使用 simplejson 库中的 dumps 转换。修改上述代码如下:

from flask import Flask, Response
import simplejson as json

app = Flask(__name__)

@app.route('/')
def index():
    data = {
        "large_number": 12345678901234567890
    }
    return Response(json.dumps(data), mimetype='application/json')

if __name__ == '__main__':
    app.run()

这时候,我们访问到网页上的数据会正常显示:

{
    "large_number": 12345678901234567890
}

二、Flask 返回 Json 文件

我们可以在 Flask 中生成 Json 格式的文件,并且可以直接将该文件返回给前端。下面是一个实例:

from flask import Flask, jsonify
import json

app = Flask(__name__)

@app.route('/file')
def file():
    data = {
        "name": "John",
        "age": 28,
        "city": "New York"
    }
    with open('data.json', 'w') as f:
        json.dump(data, f)
    return app.send_static_file('data.json')

if __name__ == '__main__':
    app.run(debug=True)

在本例中,我们使用 json.dump 将数据写入到 data.json 文件中,并通过 Flask 的 send_static_file 方法返回该 Json 文件的内容。

三、Flask 返回 Html

在 Flask 中,我们可以通过 render_template 方法来返回 HTML 页面。下面是一个实例:

from flask import Flask, render_template

app = Flask(__name__)

@app.route('/index')
def index():
    return render_template('index.html')

if __name__ == '__main__':
    app.run()

在本例中,我们在 Flask 应用目录下创建了一个名为 index.html 的文件,然后在返回时使用了 render_template 方法。

四、Flask 返回 Json 格式列表

在 Flask 中,实现返回一个 Json 格式的列表,我们可以将所有项都存入一个 Python 的列表中,然后使用 jsonify 方法返回这个列表。下面是一个例子:

from flask import Flask, jsonify

app = Flask(__name__)

@app.route('/list')
def index():
    data = [
        {
            "name": "John",
            "age": 28,
            "city": "New York"
        },
        {
            "name": "Jane",
            "age": 26,
            "city": "San Francisco"
        },
        {
            "name": "Bill",
            "age": 35,
            "city": "Los Angeles"
        }
    ]
    return jsonify(data)

if __name__ == '__main__':
    app.run(debug=True)

在这个例子中,我们将所有数据都存入了一个列表中,并使用了 jsonify 方法将整个列表作为 Json 格式返回。

五、Flask 返回格式

在 Flask 中,我们可以通过 Response 对象来重新定义返回的格式。下面我们来看一个例子,将返回格式定义为 XML:

from flask import Flask, Response

app = Flask(__name__)

@app.route('/')
def index():
    data = '''
    
    
        John
        28
        New York
    
    '''
    return Response(data, mimetype='text/xml')

if __name__ == '__main__':
    app.run(debug=True)

在本例中,我们将数据定义为 XML 格式,并通过 Response 对象将其返回给前端。在 Response 对象中,我们可以自定义 mimetype 来定义返回结果的格式。

六、Flask 返回 Json 数据到前端

在 Flask 中,我们可以通过 Json 数据与前端进行交互。下面是一个例子:

from flask import Flask, jsonify, render_template, request

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/api')
def api():
    keyword = request.args.get('keyword')
    result = [
        {"name": "John", "age": 28},
        {"name": "Jane", "age": 26},
        {"name": "Bill", "age": 35}
    ]
    if keyword:
        result = [x for x in result if keyword in x['name']]
    return jsonify(result)

if __name__ == '__main__':
    app.run(debug=True)

在这个例子中,我们在 Flask 中定义了一个名为 api() 的方法,并通过 render_template 方法将前端页面提供给用户。在前端页面中,我们定义了一个名为 search 的文本框,并使用 jQuery 技术对该文本框进行绑定。当用户在文本框中输入关键字时,会自动执行 Ajax 请求,调用 api() 方法获取数据。

七、Flask 返回 Jsonify 重新渲染页面

在 Flask 中,我们可以通过 jsonify 方法重新渲染页面。下面是一个例子:

from flask import Flask, jsonify, render_template

app = Flask(__name__)

@app.route('/posts')
def posts():
    posts = [
        {"id": 1, "title": "First post", "content": "Hello world!"},
        {"id": 2, "title": "Second post", "content": "Flask is awesome!"},
        {"id": 3, "title": "Third post", "content": "Coding is fun!"}
    ]
    return render_template('posts.html', posts=posts)

@app.route('/like/')
def like(post_id):
    posts = [
        {"id": 1, "title": "First post", "content": "Hello world!", "likes": 0},
        {"id": 2, "title": "Second post", "content": "Flask is awesome!", "likes": 0},
        {"id": 3, "title": "Third post", "content": "Coding is fun!", "likes": 0}
    ]
    for post in posts:
        if post['id'] == post_id:
            post['likes'] += 1
    return jsonify({'likes': posts[post_id-1]['likes']})

if __name__ == '__main__':
    app.run(debug=True)

在这个例子中,当用户点击喜欢时,会调用 like() 方法,返回 Json 数据。我们在前端页面中使用 jQuery 对数据进行绑定,并重新渲染页面。

八、Flask 返回文件

在 Flask 中,我们可以通过 send_file 方法返回文件。下面是一个例子:

from flask import Flask, send_file

app = Flask(__name__)

@app.route('/download')
def download():
    filename = 'data.txt'
    return send_file(filename, as_attachment=True)

if __name__ == '__main__':
    app.run(debug=True)

在本例中,我们通过 send_file 方法将一个文件返回给前端用户。

九、Flask 返回图片给前端选取

在 Flask 中,我们可以通过 send_file 方法返回图片以供前端进行下载和选择。下面是一个例子:

from flask import Flask, send_file

app = Flask(__name__)

@app.route('/images/')
def images(filename):
    return send_file('images/' + filename, mimetype='image/png')

if __name__ == '__main__':
    app.run(debug=True)

在这个例子中,我们将图片存储在 Flask 目录下的 images 文件夹中,并通过 send_file 方法返回。我们可以在前端页面中使用 img 标签来调用这个方法,并显示图片。

原创文章,作者:BGSG,如若转载,请注明出处:https://www.506064.com/n/131072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
BGSGBGSG
上一篇 2024-10-03 23:42
下一篇 2024-10-03 23:43

相关推荐

  • 做Python的Flask开发,必须安装PyCharm

    PyCharm是一款专业的Python集成开发环境(IDE),适用于Flask、Django等Web开发框架,提供了强大的代码编辑、调试和版本控制等功能,大大提高了开发效率和代码质…

    编程 2025-04-29
  • JSON的MD5

    在Web开发过程中,JSON(JavaScript Object Notation)是最常用的数据格式之一。MD5(Message-Digest Algorithm 5)是一种常用…

    编程 2025-04-29
  • 使用Java将JSON写入HDFS

    本篇文章将从以下几个方面详细阐述Java将JSON写入HDFS的方法: 一、HDFS简介 首先,先来了解一下Hadoop分布式文件系统(HDFS)。HDFS是一个可扩展性高的分布式…

    编程 2025-04-29
  • 如何使用Newtonsoft datatable转Json

    Newtonsoft DataTable 是一个基于.NET的JSON框架,也是一个用于序列化和反序列化JSON的强大工具。 在本文中,我们将学习如何使用Newtonsoft Da…

    编程 2025-04-28
  • JPRC – 轻松创建可读性强的 JSON API

    本文将介绍一个全新的 JSON API 框架 JPRC,通过该框架,您可以轻松创建可读性强的 JSON API,提高您的项目开发效率和代码可维护性。接下来将从以下几个方面对 JPR…

    编程 2025-04-27
  • Python存为JSON的方法及实例

    本文将从以下多个方面对Python存为JSON做详细的阐述。 一、JSON简介 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅…

    编程 2025-04-27
  • 使用Python获取JSON并解析

    本文将介绍如何使用Python获取JSON数据并解析相关内容。通过使用Python的第三方库,我们可以轻松地处理JSON数据,包括读取、提取和操作JSON数据。 一、获取JSON数…

    编程 2025-04-27
  • 使用Spread 8展示JSON数据

    使用Spread 8可以方便地展示JSON数据,本文将详细介绍如何利用Spread 8展示JSON数据。 一、Spread 8简介 Spread 8是一款强大的电子表格软件,可以方…

    编程 2025-04-27
  • 如何在json转实体类时忽略大小写

    本文将从以下几个方面介绍如何在json转实体类时忽略大小写。 一、使用Gson库实现json转实体类忽略大小写 Gson是Google提供的Java JSON操作库,它提供了简单易…

    编程 2025-04-27
  • C# 中 JSON null 不显示的处理方法

    本文将为大家介绍在 C# 中处理 JSON null 不显示的解决方法。 一、null 不显示的问题 在使用 C# 进行 JSON 数据处理的时候,经常会遇到 null 值不显示的…

    编程 2025-04-27

发表回复

登录后才能评论