Python Flask实现前后端Ajax数据交互详解

纸上星河
纸上星河
发布时间:2026-10-13| 5人浏览过
原创

本文详细解析Python Flask框架中前后端通过Ajax进行数据交互的实现方式。重点介绍POST和GET两种请求方法在前端HTML中的绑定技巧及后端路由处理逻辑,涵盖数据附于URL与独立发送两种场景,并提供完整的代码示例与注意事项,帮助开发者快速掌握Flask下的异步通信机制。

此前已梳理过Flask的基础知识,本节重点总结Flask框架下前后端通过Ajax进行数据交互的具体实现方法。

一、POST方法

1. POST方法的触发位置:在前端HTML代码中,通常绑定在按钮的点击事件函数内,或者输入框的失去焦点(blur)事件中。

(1)将数据附加在URL(请求路径)中发送至后端。

/*前端HTML<script>里:*/
$.post("/js_post/"+ip, data_to_backend, function(data){alert("success "+data)} );

其中,变量ip和data_to_backend需在代码前预先定义;data_to_backend通常为一个JSON格式数据(data_to_backend={'ip':$(this).parent().prev().text()}),而data则是后端返回的结果。

#后端py文件(路由启动前面的html的py文件)里:添加一个路由处理前端post请求
@app.route("/js_post/<ip>", methods=['GET', 'POST'])
def js_post(ip):
   print ip
   return ip +" - ip"

点击按钮后的运行效果如下:

前端定义的弹窗数据展示

URL中包含ip参数

(2)将数据作为独立参数发送给后端。

var ip = $(this).parent().prev().prev().prev().prev().text();
data_tmp = {'ip':ip, 'text':"success for ajax"};  // data to send to server.
$.post('/js_call', data_tmp, function(data){alert(data)});

后端处理该请求的程序逻辑如下:

@app.route('/js_call', methods=['GET', 'POST'])
def js_call():  
   print request.values['ip']  
   print request.values['text']  
   # to send the command by ssh : os.system("ssh user@host \' restart(command) \' ")  
   return 'ok!!!!'

POST独立数据发送示例

二、GET方法(同样可用于发送数据)

$.get('/js_get', {'method':'GET', 'text':"from-html"}, function(data){alert(data)})

后端路由接收并处理GET请求的代码如下:

@app.route('/js_get', methods=['GET'])
def js_get():
  print "method: "+request.values['method']+" --- text: "+request.values['text']
  return "get success!"

GET请求成功状态

数据接收成功的反馈

需要注意的是:后端Python文件中用于获取数据的request模块(如request.values['method']所示)属于Python Flask的标准模块,使用时需确保已正确导入。

总结:

  • 在Flask框架中,实现Ajax请求对后端的交互十分简便,只需在后端Python代码中针对Ajax请求的路径编写相应的处理逻辑即可。
  • Ajax的POST和GET方法均可向后台发送数据,但通常POST用于提交数据(执行修改操作),而GET用于获取数据(不改变服务器状态)。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

相关标签:

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

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 算法库。