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/zh-hant/n/131072.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
BGSG的頭像BGSG
上一篇 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

發表回復

登錄後才能評論