Flask如何在localhost本地服务展示第三方web应用并获取用户保存数据
Flask本地服务跳转外部应用并接收返回数据实现方案
现有代码问题说明
你当前的逻辑仅返回了字符串形式的目标URL,没有返回标准的重定向响应,因此浏览器不会自动完成跳转动作。
第一步:实现访问本地服务自动跳转
首先导入Flask基础依赖,修改首页路由返回重定向响应:
from flask import Flask, redirect, request, jsonify app = Flask(__name__) @app.route('/', methods=['GET']) def index(): # 替换为你实际的目标web应用地址即可 return redirect('https://你的目标web应用地址')
第二步:接收目标应用回传的用户操作数据
你需要拥有目标web应用的代码修改权限,在用户完成操作、保存数据的逻辑后,让目标应用向你的Flask服务接口发送数据请求。
Flask侧新增接收数据的接口示例:
@app.route('/receive_data', methods=['POST']) def receive_data(): # 假设目标应用使用JSON格式传递数据,若用表单格式可改用request.form获取 user_save_data = request.get_json() # 此处添加你的后续处理逻辑:例如存入数据库、写入本地文件、业务计算等 print('接收到的用户保存数据:', user_save_data) # 向目标应用返回响应,内容可根据实际需求调整 return jsonify({'code': 200, 'msg': '数据接收成功'})
完整可运行最小示例
from flask import Flask, redirect, request, jsonify import json app = Flask(__name__) # 首页跳转路由 @app.route('/', methods=['GET']) def index(): return redirect('https://你的目标web应用地址') # 数据接收路由 @app.route('/receive_data', methods=['POST']) def receive_data(): user_save_data = request.get_json() # 示例:将数据追加写入本地JSON文件 with open('user_operate_data.json', 'a', encoding='utf-8') as f: json.dump(user_save_data, f, ensure_ascii=False) f.write('\n') return jsonify({'status': 'success', 'message': '数据已接收'}) if __name__ == '__main__': # 启动本地服务,默认端口为5000,debug模式开启方便调试 app.run(debug=True)
测试说明
- 启动Flask服务后,在浏览器访问
http://127.0.0.1:5000即可自动跳转至目标web应用 - 目标应用侧保存数据后,向
http://127.0.0.1:5000/receive_data发送POST请求携带数据即可完成回传,以下是Python写的目标应用调用示例:
import requests response = requests.post( url='http://127.0.0.1:5000/receive_data', json={ 'user_id': 'u12345', 'save_content': '用户提交的表单内容', 'operate_time': '2024-05-20 12:00:00' } ) print(response.json())
内容的提问来源于stack exchange,提问作者VatsalG
相关产品推荐
相关产品推荐

