【发布时间】:2016-01-07 04:59:42
【问题描述】:
我需要在我用 Python + JS 制作的 WebApp 的单个页面上有多个 POST 请求
这是我的 App.py 代码:
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://myapiurl.com/myapi/'
payload = {
"perfid" : value1,
"section" : {
"hostname" : value2,
"iteration" : value3,
"sectionname" : "sysstat_M"
}
}
r = requests.post(url, data=json.dumps(payload))
returnData = {}
if r.status_code == 200:
returnData["status"] = "SUCCESS"
returnData["result"] = json.loads(r.text)
return jsonify(returnData)
else:
returnData["status"] = "ERROR"
return jsonify(returnData)
#print(r.status_code, r.headers['content-type'])
#print(r.text)
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
现在我需要在同一页面上进行多个此类 POST 请求 API 调用。 多个 POST 请求是指我需要在同一页面中再使用一个 API。
例如:我在 http://myapiurl.com/myapi2/ 有另一个 API,我也需要使用相同的 POST 请求来使用它,因为只有一个参数不同,结果也会不同。
url = 'http://myapiurl.com/myapi2/'
payload = {
"perfid" : value1,
"section" : {
"hostname" : value2,
"iteration" : value3,
"sectionname" : "DIFFERENT VALUE"
}
}
r = requests.post(url, data=json.dumps(payload))
returnData = {}
这是我的 JS 代码:
$(document).ready(function() {
console.log("ready!");
$('form').on('submit', function() {
console.log("the form has beeen submitted");
// grab values
valueOne = $('input[name="perfid"]').val();
valueTwo = $('input[name="hostname"]').val();
valueThree = $('input[name="iteration"]').val();
console.log(valueOne)
console.log(valueTwo)
console.log(valueThree)
$.ajax({
type: "POST",
url: "/",
dataType:'json',
data : { 'first': valueOne,'second': valueTwo,'third': valueThree},
success: function(data) {
var x = parseInt(data.result.sectoutput.summarystats.Avg.AVG);
if(x>80)
{
var res = data.result.sectoutput.summarystats.Avg.AVG;
var p = '<p>CPU may be overloading.</p>';
$('#result').append(p);
}
else
{
var p = '<p>Normal Usage going on.</p>';
$('#result').append(p);
}
},
error: function(error) {
console.log(error)
}
});
});
});
谁能帮我做这件事? 这甚至可能吗?
或者谁能指出我可以理解如何处理多个 POST 请求的地方? 谢谢。
【问题讨论】:
-
老实说,我不确定您要在这里做什么。你能试着用不同的方式解释吗?
标签: javascript python flask