【发布时间】:2016-04-11 13:42:52
【问题描述】:
我需要执行如下代码所示的两个 post 请求,但只有一个 POST 有效,下面是 python 代码:
import json
from flask import Flask, render_template, request, jsonify
import requests
app = Flask(__name__)
@app.route("/",methods=['GET','POST'])
def home():
if request.method == 'POST':
#user inputs
value1 = request.form.get('first')
value2 = request.form.get('second')
value3 = request.form.get('third')
#api call
url = 'http://apihere/myapi'
payload = {
"perfid" : value1,
"section" : {
"hostname" : value2,
"iteration" : value3,
"sectionname" : "sysstat_M"
}
}
payload1 = {
"perfid" : value1,
"section" : {
"hostname" : value2,
"iteration" : value3,
"sectionname" : "sysstat_x_1sec"
}
}
r = requests.post(url, data=json.dumps(payload))
returnData = {}
r1 = requests.post(url, data=json.dumps(payload1))
returnData1 = {}
if r.status_code == 200:
returnData["status"] = "SUCCESS"
returnData["result"] = json.loads(r.text)
return jsonify(returnData)
else:
returnData["status"] = "ERROR"
return jsonify(returnData)
if r1.status_code == 200:
returnData1["status"] = "SUCCESS"
returnData1["result"] = json.loads(r1.text)
return jsonify(returnData1)
else:
returnData1["status"] = "ERROR"
return jsonify(returnData1)
#print(r.status_code, r.headers['content-type'])
#print(r.text)
return render_template('index.html')
@app.route("/filer",methods=['GET','POST'])
def filer():
if request.method == 'POST':
#user inputs
value = request.form.get('first')
#api call
url = 'http://myanother/api'.format(value)
response = requests.get(url)
returnData = {}
if response.status_code == 200:
returnData["status"] = "SUCCESS"
returnData["result"] = json.loads(response.text)
return jsonify(returnData)
else:
returnData["status"] = "ERROR"
return jsonify(returnData)
#jsonify(response.json())
return render_template('filer.html')
if __name__ == '__main__':
app.run(debug=True)
如下截图显示只有一个 POST 工作。我怎样才能让两个 HTTP POST 工作,有人可以建议吗???
【问题讨论】:
-
您的屏幕截图并没有真正显示只有 1 个 POST 请求正在工作;你怎么称呼第二个请求?这个的代码或网络信息在哪里?
标签: javascript python flask