| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- # -*- coding: utf-8 -*-
- from flask import Flask, jsonify, request, render_template
- from db_utils.data import *
- from db_utils.files import *
- from file_uploader import upload_file # 导入文件上传的函数
- # 初始化 Flask 应用
- app = Flask(__name__)
- # 初始化数据库和表
- #initialize_database()
- #initialize_table()
- # 初始化数据库和表
- #initialize_files_database()
- #initialize_files_table("filePath")
- @app.route('/')
- def home():
- return render_template('index.html')
- # 获取类别数据
- @app.route('/categories')
- def get_categories():
- rows = fetch_data('category')
- # 将查询结果格式化为字典列表
- category_list = [{"id": row[0], "categoryName": row[1]} for row in rows]
- print(category_list)
- # 返回 JSON 格式的数据
- return jsonify(category_list)
- @app.route('/category-data', methods=['GET'])
- def get_table():
- # 获取查询参数中的表名 (categoryName)
- category_name = request.args.get('categoryName')
- if not category_name:
- return jsonify({"error": "No categoryName provided"}), 400 # 如果没有提供表名,返回错误
- # 根据表名查询数据
- rows = fetch_data(category_name)
- if not rows:
- return jsonify({"error": f"No data found for table {category_name}"}), 404 # 如果没有找到数据,返回错误
- # 将查询结果格式化为字典列表
- category_list = [{"id": row[0], "categoryName": row[1], "url":row[2]} for row in rows]
- print(category_list)
- # 返回 JSON 格式的数据
- return jsonify(category_list)
- # 添加水果数据
- @app.route('/add_fruit', methods=['POST'])
- def add_fruit():
- data = request.json
- name = data.get('name')
- origin = data.get('origin')
- if not name or not origin:
- return jsonify({"error": "Missing name or origin"}), 400
- try:
- insert_data(name, origin)
- return jsonify({"message": f"Fruit {name} from {origin} added successfully!"}), 200
- except Exception as e:
- return jsonify({"error": str(e)}), 500
- # 获取所有水果数据
- @app.route('/fruits', methods=['GET'])
- def get_fruits():
- try:
- fruits = fetch_data()
- return jsonify({"fruits": fruits})
- except Exception as e:
- return jsonify({"error": str(e)}), 500
- @app.route('/delete_fruit', methods=['POST'])
- def delete_fruit():
- data = request.json
- name = data.get('name')
- if not name:
- return jsonify({"error": "Missing name"}), 400
- try:
- delete_data(name)
- return jsonify({"message": f"Fruit {name} deleted successfully!"}), 200
- except Exception as e:
- return jsonify({"error": str(e)}), 500
- # 上传文件接口
- @app.route('/upload', methods=['POST'])
- def upload():
- return upload_file() # 调用封装好的文件上传函数
- # 下载文件接口
- from flask import send_from_directory
- @app.route('/download/<filename>', methods=['GET'])
- def download_file(filename):
- # 强制下载文件
- return send_from_directory('../uploads', filename, as_attachment=True)
- # 运行 Flask 应用
- if __name__ == '__main__':
- app.run(host='0.0.0.0', port=5000, debug=True)
|