Передача данных POST запроса в теле FLASK
Пишу небольшое приложение, у которого есть методы post_input_data() и get_answer()
- post_input_data() - дает данные json в теле запроса
- get_answer()- отдает пишет решение
Каким образом лучше передать данные из 1-го во 2-й?
Попытался curl'ом передать данные и записать в глобальную переменную, а потом взять из нее данные и отдать get_answer()
from flask import Flask, jsonify, request
import requests
app = Flask(__name__)
json = ''
def calculate(json):
jsn_out = {
'SumResult': 0,
'MulResult': 1,
'SortedInputs': []
}
k = json['K']
sum = 0
for el in json['Sums']:
sum += el
jsn_out['SortedInputs'].append(el)
jsn_out['SumResult'] = round(sum * k, 2)
for el in json['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 'server X_x'
@app.route('/PostInputData', methods=['POST'])
def post_input_data():
# нужно послать json в теле запроса
# $ 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'
json = request.get_json()
return jsonify(json)
@app.route('/GetAnswer')
def get_answer():
return jsonify(calculate(json))
if __name__ == '__main__':
app.run(debug=True)
Правильно ли я вообще делаю все это?