from flask import Blueprint, request, render_template,send_from_directory,current_app from flask import render_template, request, redirect, flash, send_from_directory from flask import Blueprint, request import os from werkzeug.utils import secure_filename from utils.file_utils import process_files, allowed_file index_bp = Blueprint('index', __name__) @index_bp.route('/', methods=['GET', 'POST']) def index(): if request.method == 'POST': if 'file' not in request.files or 'upload_folder' not in request.form \ or 'similarity_threshold' not in request.form or 'time_label' not in request.form: flash('所有字段都是必填的') return redirect(request.url) file = request.files['file'] upload_folder = request.form['upload_folder'] similarity_threshold = float(request.form['similarity_threshold']) time_label = request.form['time_label'] if file.filename == '' or not allowed_file(file.filename) or not os.path.exists(upload_folder): flash('无效的输入') return redirect(request.url) if file and allowed_file(file.filename): filename = secure_filename(file.filename) ref_image_path = os.path.join(current_app.config['UPLOAD_FOLDER'], filename) file.save(ref_image_path) results = process_files(upload_folder, ref_image_path, similarity_threshold, time_label) return render_template('result.html', results=results) return render_template('index.html') @index_bp.route('/uploads/') def uploaded_file(filename): return send_from_directory(current_app.config['UPLOAD_FOLDER'], filename)