Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
@@ -983,30 +983,46 @@ if __name__ == "__main__":
|
|
983 |
def handle_calculation():
|
984 |
try:
|
985 |
data = request.json
|
|
|
986 |
|
987 |
-
#
|
988 |
-
|
|
|
|
|
|
|
989 |
|
990 |
-
#
|
|
|
|
|
|
|
|
|
|
|
991 |
calculator.target_profile = {
|
992 |
-
'P': data['profileSettings']
|
993 |
-
'K': data['profileSettings']
|
994 |
-
'Mg': data['profileSettings']
|
995 |
-
'Ca': data['profileSettings']
|
996 |
-
'S': data['profileSettings']
|
997 |
-
'N (NO3-)': data['profileSettings']
|
998 |
-
'N (NH4+)': data['profileSettings']
|
999 |
}
|
1000 |
|
|
|
1001 |
calculator.fertilizers = data['fertilizerConstants']
|
1002 |
|
1003 |
# Выполняем расчет
|
1004 |
-
calculator.calculate()
|
1005 |
-
|
|
|
|
|
|
|
|
|
|
|
1006 |
|
1007 |
except Exception as e:
|
1008 |
-
|
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 |
|