DmitrMakeev commited on
Commit
3792f60
·
verified ·
1 Parent(s): bd13a81

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -14
app.py CHANGED
@@ -983,30 +983,46 @@ if __name__ == "__main__":
983
  def handle_calculation():
984
  try:
985
  data = request.json
 
986
 
987
- # Создаем калькулятор с базовыми настройками
988
- calculator = NutrientCalculator(volume_liters=data['profileSettings']['liters'])
 
 
 
989
 
990
- # Вручную устанавливаем профиль и удобрения
 
 
 
 
 
991
  calculator.target_profile = {
992
- 'P': data['profileSettings']['P'],
993
- 'K': data['profileSettings']['K'],
994
- 'Mg': data['profileSettings']['Mg'],
995
- 'Ca': data['profileSettings']['Ca'],
996
- 'S': data['profileSettings']['S'],
997
- 'N (NO3-)': data['profileSettings']['N (NO3-)'],
998
- 'N (NH4+)': data['profileSettings']['N (NH4+)']
999
  }
1000
 
 
1001
  calculator.fertilizers = data['fertilizerConstants']
1002
 
1003
  # Выполняем расчет
1004
- calculator.calculate()
1005
- return jsonify(calculator.get_web_results())
 
 
 
 
 
1006
 
1007
  except Exception as e:
1008
- return jsonify({"error": str(e)}), 500
1009
-
 
1010
 
1011
 
1012
 
 
983
  def handle_calculation():
984
  try:
985
  data = request.json
986
+ print("Получены данные:", data) # Логируем входящий запрос
987
 
988
+ # Проверка обязательных полей
989
+ required_fields = ['profileSettings', 'fertilizerConstants']
990
+ for field in required_fields:
991
+ if field not in data:
992
+ return jsonify({"error": f"Missing required field: {field}"}), 400
993
 
994
+ # Создаем калькулятор
995
+ calculator = NutrientCalculator(
996
+ volume_liters=data['profileSettings'].get('liters', 1)
997
+ )
998
+
999
+ # Устанавливаем профиль
1000
  calculator.target_profile = {
1001
+ 'P': data['profileSettings'].get('P', 0),
1002
+ 'K': data['profileSettings'].get('K', 0),
1003
+ 'Mg': data['profileSettings'].get('Mg', 0),
1004
+ 'Ca': data['profileSettings'].get('Ca', 0),
1005
+ 'S': data['profileSettings'].get('S', 0),
1006
+ 'N (NO3-)': data['profileSettings'].get('N (NO3-)', 0),
1007
+ 'N (NH4+)': data['profileSettings'].get('N (NH4+)', 0)
1008
  }
1009
 
1010
+ # Устанавливаем удобрения
1011
  calculator.fertilizers = data['fertilizerConstants']
1012
 
1013
  # Выполняем расчет
1014
+ result = calculator.calculate()
1015
+ response = {
1016
+ "status": "success",
1017
+ "data": calculator.get_web_results()
1018
+ }
1019
+ print("Отправляем ответ:", response) # Логируем ответ
1020
+ return jsonify(response)
1021
 
1022
  except Exception as e:
1023
+ error_msg = f"Server error: {str(e)}"
1024
+ print(error_msg)
1025
+ return jsonify({"status": "error", "message": error_msg}), 500
1026
 
1027
 
1028