first commit 稳定版本,已知该版本存在问题,前端未对数据进行校验,没有集成导出excel
This commit is contained in:
commit
e5030abf39
40 files changed
+5186
No files matched your search
@@ -0,0 +1,52 @@
|
||||
import os
|
||||
import uuid
|
||||
from flask import Flask, request, jsonify, send_file
|
||||
from flask_cors import CORS
|
||||
from services.report_service import NutritionReportService
|
||||
|
||||
app = Flask(__name__)
|
||||
|
||||
CORS(app, resources={
|
||||
r"/api/*": {
|
||||
"origins": ["http://localhost:5173", "http://127.0.0.1:5173"]
|
||||
}
|
||||
})
|
||||
|
||||
report_service = NutritionReportService()
|
||||
|
||||
|
||||
@app.route("/api/food-record", methods=["POST"])
|
||||
def food_record():
|
||||
try:
|
||||
front_json = request.get_json()
|
||||
|
||||
if not front_json:
|
||||
return jsonify({"message": "没有收到 JSON 数据"}), 400
|
||||
|
||||
print("收到前端数据:", front_json)
|
||||
|
||||
output_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), "output", "reports")
|
||||
os.makedirs(output_dir, exist_ok=True)
|
||||
|
||||
file_name = f"nutrition_report_{uuid.uuid4().hex}.pdf"
|
||||
output_path = os.path.join(output_dir, file_name)
|
||||
|
||||
report_service.generate_report_from_json(front_json, output_path)
|
||||
|
||||
return send_file(
|
||||
output_path,
|
||||
as_attachment=True,
|
||||
download_name="nutrition_report.pdf",
|
||||
mimetype="application/pdf"
|
||||
)
|
||||
|
||||
except Exception as e:
|
||||
print("后端报错:", e)
|
||||
return jsonify({
|
||||
"message": "处理失败",
|
||||
"error": str(e)
|
||||
}), 500
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app.run(debug=True, port=5000)
|
||||
Reference in new issue
Block a user