我请求通过CURL将数据传输到POST方法,在该方法中,我将全局变量数据设置为value,然后我需要在另一种方法中使用相同的变量,但是在请求之后数据消失了。
如何写入数据以使其在请求后不会消失?
POST请求:
curl --request POST --header 'Content-Type: application/json' --data '{"K":10,"Sums":[1.01,2.02],"Muls":[1,4]}' 'http://127.0.0.1:5000/PostInputData'
获取请求:
curl http://127.0.0.1:5000/GetAnswer
程序代码:
from flask import Flask, jsonify, request, json, abort
import requests, json
app = Flask(__name__)
data = ''
def calculate(jsn):
jsn_out = {
'SumResult': 0,
'MulResult': 1,
'SortedInputs': []
}
k = jsn['K']
sum = 0
for el in jsn['Sums']:
sum += el
jsn_out['SortedInputs'].append(el)
jsn_out['SumResult'] = round(sum * k, 2)
for el in jsn['Muls']:
jsn_out['MulResult'] *= el
jsn_out['SortedInputs'].append(el)
jsn_out['SortedInputs'].sort()
return jsn_out
@app.route('/')
def index():
return ''
@app.route('/Ping')
def ping():
res = requests.get('http://127.0.0.1:5000/')
if res.status_code == 200:
return jsonify(res.status_code)
else:
return abort(400)
@app.route('/PostInputData', methods=['POST'])
def post_input_data():
data = request.get_json(force=True)
print(data)
# data is empty
return jsonify(data)
@app.route('/GetAnswer')
def get_answer():
print(data)
return jsonify(data)
if __name__ == '__main__':
app.run(debug=True)
如果您有兴趣,请输入more info about the Flask request lifecycle。没错,一旦Flask处理完请求,数据就消失了。