from flask import Flask, jsonify, request,send_from_directory from flask_cors import CORS import os import sqlite3 import uuid app = Flask(__name__) CORS(app) # 图片上传目录 UPLOAD_FOLDER = 'uploads' if not os.path.exists(UPLOAD_FOLDER): os.makedirs(UPLOAD_FOLDER) # 视频上传目录 VIDEO_UPLOAD_FOLDER = 'video_uploads' if not os.path.exists(VIDEO_UPLOAD_FOLDER): os.makedirs(VIDEO_UPLOAD_FOLDER) app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER app.config['VIDEO_UPLOAD_FOLDER'] = VIDEO_UPLOAD_FOLDER # 封装数据库连接函数 def get_db_connection(): return sqlite3.connect('software_intro.db') # 初始化数据库表 def init_db(): conn = get_db_connection() cursor = conn.cursor() cursor.execute(''' CREATE TABLE IF NOT EXISTS software_intro ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, intro TEXT ) ''') conn.commit() conn.close() # 调用初始化函数 init_db() # 获取软件介绍信息的路由 @app.route('/software-intro/', methods=['GET']) def get_software_intro(id): try: conn = get_db_connection() cursor = conn.cursor() cursor.execute('SELECT title, intro FROM software_intro WHERE id = ?',(id,)) result = cursor.fetchone() conn.close() if result: title, intro = result return jsonify({ 'title': title, 'intro': intro }) return jsonify({}), 404 except sqlite3.Error as e: print(f"数据库错误: {e}") return jsonify({"error": f"数据库错误: {str(e)}"}), 500 # 更新软件介绍信息的路由 @app.route('/software-intro/', methods=['PUT']) def update_software_intro(id): try: data = request.get_json() title = data.get('title') intro = data.get('intro') print(f"Received title: {title}, intro: {intro}") conn = get_db_connection() cursor = conn.cursor() cursor.execute('UPDATE software_intro SET title =?, intro =? WHERE id = ?', (title, intro,id)) conn.commit() conn.close() return jsonify({'message': '软件介绍更新成功'}) except sqlite3.Error as e: print(f"数据库错误: {e}") return jsonify({"error": f"数据库错误: {str(e)}"}), 500 # 处理图片上传的路由 @app.route('/upload-image', methods=['POST']) def upload_image(): file = request.files['image'] if file: filename = str(uuid.uuid4()) + '.' + file.filename.rsplit('.', 1)[1].lower() file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) imageUrl = f'http://127.0.0.1:5000/uploads/{filename}' return jsonify({'imageUrl': imageUrl}) return jsonify({'error': '未找到图片文件'}), 400 # 处理视频上传的路由 @app.route('/upload-video', methods=['POST']) def upload_video(): file = request.files['video'] if file: try: filename = str(uuid.uuid4()) + '.' + file.filename.rsplit('.', 1)[1].lower() file.save(os.path.join(app.config['VIDEO_UPLOAD_FOLDER'], filename)) videoUrl = f'http://127.0.0.1:5000/video_uploads/{filename}' return jsonify({'videoUrl': videoUrl}) except Exception as e: print(f"视频保存失败: {e}") return jsonify({'error': '视频保存失败'}), 500 return jsonify({'error': '未找到视频文件'}), 400 # 配置静态资源服务 @app.route('/uploads/') def serve_image(filename): uploads_folder = os.path.join(app.root_path, 'uploads') return send_from_directory(uploads_folder, filename) # 配置视频静态资源服务 @app.route('/video_uploads/') def serve_video(filename): video_uploads_folder = os.path.join(app.root_path, 'video_uploads') return send_from_directory(video_uploads_folder, filename) if __name__ == '__main__': app.run(debug=True)