app.py 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. # -*- coding: utf-8 -*-
  2. from flask import Flask, jsonify, request
  3. from data import *
  4. from files import *
  5. from file_uploader import upload_file # 导入文件上传的函数
  6. # 初始化 Flask 应用
  7. app = Flask(__name__)
  8. # 初始化数据库和表
  9. initialize_database()
  10. initialize_table()
  11. # 初始化数据库和表
  12. initialize_files_database()
  13. initialize_files_table()
  14. @app.route('/')
  15. def home():
  16. return "Welcome to the Fruit API!"
  17. # 添加水果数据
  18. @app.route('/add_fruit', methods=['POST'])
  19. def add_fruit():
  20. data = request.json
  21. name = data.get('name')
  22. origin = data.get('origin')
  23. if not name or not origin:
  24. return jsonify({"error": "Missing name or origin"}), 400
  25. try:
  26. insert_data(name, origin)
  27. return jsonify({"message": f"Fruit {name} from {origin} added successfully!"}), 200
  28. except Exception as e:
  29. return jsonify({"error": str(e)}), 500
  30. # 获取所有水果数据
  31. @app.route('/fruits', methods=['GET'])
  32. def get_fruits():
  33. try:
  34. fruits = fetch_data()
  35. return jsonify({"fruits": fruits})
  36. except Exception as e:
  37. return jsonify({"error": str(e)}), 500
  38. @app.route('/delete_fruit', methods=['POST'])
  39. def delete_fruit():
  40. data = request.json
  41. name = data.get('name')
  42. if not name:
  43. return jsonify({"error": "Missing name"}), 400
  44. try:
  45. delete_data(name)
  46. return jsonify({"message": f"Fruit {name} deleted successfully!"}), 200
  47. except Exception as e:
  48. return jsonify({"error": str(e)}), 500
  49. # 上传文件接口
  50. @app.route('/upload', methods=['POST'])
  51. def upload():
  52. return upload_file() # 调用封装好的文件上传函数
  53. # 下载文件接口
  54. @app.route('/download/<filename>', methods=['GET'])
  55. def download_file(filename):
  56. from flask import send_from_directory
  57. return send_from_directory('uploads', filename)
  58. # 运行 Flask 应用
  59. if __name__ == '__main__':
  60. app.run(host='0.0.0.0', port=5000, debug=True)