Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -1098,54 +1098,45 @@ class WebNutrientCalculator:
|
|
1098 |
@app.route('/calculation', methods=['POST'])
|
1099 |
def handle_calculation():
|
1100 |
try:
|
1101 |
-
# 1. Получаем данные
|
1102 |
data = request.get_json()
|
1103 |
if not data:
|
1104 |
-
raise ValueError("
|
1105 |
-
|
1106 |
-
# 2.
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
'
|
1117 |
-
'
|
1118 |
-
|
1119 |
-
'Ca': float(data['profileSettings'].get('Ca', 0)),
|
1120 |
-
'S': float(data['profileSettings'].get('S', 0)),
|
1121 |
-
'N_NO3': float(data['profileSettings'].get('N (NO3-)', 0)),
|
1122 |
-
'N_NH4': float(data['profileSettings'].get('N (NH4+)', 0))
|
1123 |
-
},
|
1124 |
-
'fertilizers': data['fertilizerConstants']
|
1125 |
-
}
|
1126 |
-
|
1127 |
-
# 4. Выполняем расчет (упрощенная логика)
|
1128 |
-
results = {
|
1129 |
-
'fertilizers': [],
|
1130 |
-
'profile': calculator['target_profile'],
|
1131 |
-
'ec': 0.0,
|
1132 |
-
'volume': calculator['volume']
|
1133 |
}
|
1134 |
|
1135 |
-
#
|
1136 |
-
|
1137 |
-
|
1138 |
-
|
1139 |
-
|
1140 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1141 |
except Exception as e:
|
1142 |
-
# 6. Обработка ошибок
|
1143 |
return jsonify({
|
1144 |
-
|
1145 |
-
|
1146 |
}), 500
|
1147 |
|
1148 |
|
1149 |
-
|
1150 |
if __name__ == '__main__':
|
1151 |
app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))
|
|
|
1098 |
@app.route('/calculation', methods=['POST'])
|
1099 |
def handle_calculation():
|
1100 |
try:
|
1101 |
+
# 1. Получаем и проверяем данные
|
1102 |
data = request.get_json()
|
1103 |
if not data:
|
1104 |
+
raise ValueError("Не получены данные")
|
1105 |
+
|
1106 |
+
# 2. Преобразуем данные клиента в серверный формат
|
1107 |
+
server_data = {
|
1108 |
+
'fertilizerConstants': convert_client_data(data['fertilizerConstants']),
|
1109 |
+
'profileSettings': {
|
1110 |
+
'P': float(data['profileSettings']['P']),
|
1111 |
+
'K': float(data['profileSettings']['K']),
|
1112 |
+
'Mg': float(data['profileSettings']['Mg']),
|
1113 |
+
'Ca': float(data['profileSettings']['Ca']),
|
1114 |
+
'S': float(data['profileSettings']['S']),
|
1115 |
+
'N (NO3-)': float(data['profileSettings']['N (NO3-)']), # Берем из фронтенда
|
1116 |
+
'N (NH4+)': float(data['profileSettings']['N (NH4+)']), # Берем из фронтенда
|
1117 |
+
'liters': int(data['profileSettings']['liters'])
|
1118 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1119 |
}
|
1120 |
|
1121 |
+
# 3. Используем ТОЛЬКО оригинальный калькулятор
|
1122 |
+
calculator = NutrientCalculator(volume_liters=server_data['profileSettings']['liters'])
|
1123 |
+
|
1124 |
+
# 4. Вручную переопределяем target_profile перед расчетом
|
1125 |
+
calculator.target_profile.update(server_data['profileSettings'])
|
1126 |
+
calculator.fertilizers = server_data['fertilizerConstants']
|
1127 |
+
|
1128 |
+
# 5. Выполняем расчет
|
1129 |
+
calculator.calculate()
|
1130 |
+
|
1131 |
+
# 6. Возвращаем результаты
|
1132 |
+
return jsonify(calculator.get_web_results())
|
1133 |
+
|
1134 |
except Exception as e:
|
|
|
1135 |
return jsonify({
|
1136 |
+
"error": str(e),
|
1137 |
+
"message": "Ошибка расчета"
|
1138 |
}), 500
|
1139 |
|
1140 |
|
|
|
1141 |
if __name__ == '__main__':
|
1142 |
app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)))
|