周五下午,作为小白太痛苦了,这两天一直在做一件事,如下:
使flask接口中的函数执行的同时,向指定的url传递数据(我甚至不知道怎么描述这个问题)。大概的函数结构使这样的:
app1 = Flask(\'app1\') @app1.route(\'/\', methods=[\"POST\"]) def pic(): data = request.get_data() # 获取参数字典 # func1在执行过程中会保存图并对图片进行处理 # *需求是在func1把图保存后立即向指定的url传输图片路径 # 在这里真的难到我了 func1() return \"111\" if __name__ == \'__main__\': app3.run(host=\'0.0.0.0\', port=1000)
我的解决思路:
看了很多的博客教程之后,发现request.post(url,data)可以向url发送带数据的请求,这是不是就能将数据传给url?
所以我写了个服务,如下:
功能为获取数据,打印数据,返回成功提示。然后保持这个url处于可连接状态(也就是run一下?)。
from flask import Flask,request # ............service3............... app2 = Flask(\'app2\') @app2.route(\'/\', methods=[\"POST\"]) def pic(): data = request.get_data() print(data,type(data)) return \"获取数据成功\" if __name__ == \'__main__\': app3.run(host=\'0.0.0.0\', port=4000)
显示
遇到一个问题,就是request.get_data()和request.get_json()的区别,在这里记一下:
get_data():
是以数据的格式进行获取,如果你传输的是一个标准的json,那他依然是个json格式;
get_json():
他只能去解析json格式的传递参数
然后我就开始测试能不能向指定url发送数据了!写了如下代码:
myobj中为我要向url发送的数据
import requests import json # 表单参数,参数名为 fname 和 lname myobj = {\'fname\': \'www\',\'lname\': \'qqq\'} # 发送请求 x = requests.post(\'http://127.0.0.1:4000/\', data = json.dumps(myobj)) # 返回网页内容 print(x.text)
同样run一下,显示:说明数据传输给了url
再看上一个文件的提示:url这边成功的打印了通过requests.post()传递过去的信息
© 版权声明
THE END
暂无评论内容