一、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