Python Flask框架实现传数据到JS的方法分析

许南星
许南星
发布时间:2026-10-13| 7人浏览过
原创

本文详解了Python Flask框架中后端向前端JavaScript传递数据的两种主要方式。重点分析了使用json.dumps和jsonify进行后台序列化的区别,以及前端通过jQuery的$.getJSON、$.post或eval方法进行反序列化的具体实现。此外,还介绍了在渲染模板时通过|safe过滤器直接传递JSON字符串的技巧,旨在帮助开发者优化Flask应用中的数据交互流程。

Flask与JavaScript数据交互概述

本文详细介绍在Python Flask框架中,后端如何将数据传递给前端JavaScript的实现方法,供开发者参考。

数据格式选择与后端序列化

首先需要明确后台与前端交互所采用的数据格式标准。

通常推荐使用JSON格式,因为它与JavaScript的数据结构天然契合,交互效率更高。

后端返回的数据必须经过序列化处理后才能传输。

在/homepageRecommend路由对应的view方法中,需返回经过序列化的数据。


dict = {"a":1, "b":2}<br data-filtered="filtered">
import json
json.dumps(dict)

2)


from flask import jsonify
jsonify(dict) #在调用jsonfiy 有时会报错,原因是jsonify 对象必须是dict

这两种序列化方式的主要区别在于,jsonify返回的数据格式在浏览器中查看时更加美观易读。

前端jQuery反序列化与请求处理

前端利用jQuery对接收到的JSON数据进行反序列化操作。


$.getJSON('/homepageRecommend'
    , function(data) {          // 从Flask返回的数据
      alert(data.a)           // 浏览器弹窗显示 后端返回的dict["a"]的值,此次是1
  }
)
//getJSON 函数有三个参数
//第一个是后端返回的数据的url
//第二个是要返回给服务器的data 是可选的
//第三个是对获取的反序列化数据 要继续进行的操作的函数

前端通过.get()或者.get()或者.post()方法发送请求,后端利用json.dumps(dict)返回json数据,在js中利用eval()方法,把json数据转换为js对象,后再做其他处理


$.post("{{ url_for('statistics.HomeRecommend') }}",{"id":a},function(reco_list){
 var reco_list = eval(reco_list)
//do others
})

模板渲染时的直接数据传递技巧

最近在使用icharts绘制图表的过程中,发现了一种额外的数据传输方式,在view中使用如下代码:

复制代码

代码如下:

return render_template('statistics/numberofuserlogin/login_number.html', result_json = json.dumps(result))


js中直接用

js_object = eval('{{result_json|safe }}')

注意 一定要加|safe 过滤否则会对字符串进行转义导致解析错误 使用这种方式传数据,能够在渲染模板的同时传数据,避免定义新的url拿数据

总结: flask 后台给前端js传数据, 需要注意序列化 和反序列化

更多资料参考 https://www.jb51.net/article/162815.htm

希望本文所述对大家基于Flask框架的Python程序设计有所帮助。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。