123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- 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/<int:id>', 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/<int:id>', 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/<path:filename>')
- def serve_image(filename):
- uploads_folder = os.path.join(app.root_path, 'uploads')
- return send_from_directory(uploads_folder, filename)
- # 配置视频静态资源服务
- @app.route('/video_uploads/<path:filename>')
- 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)
|