routes.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from flask import Blueprint, request, render_template,send_from_directory,current_app
  2. from flask import render_template, request, redirect, flash, send_from_directory
  3. from flask import Blueprint, request
  4. import os
  5. from werkzeug.utils import secure_filename
  6. from utils.file_utils import process_files, allowed_file
  7. index_bp = Blueprint('index', __name__)
  8. @index_bp.route('/', methods=['GET', 'POST'])
  9. def index():
  10. if request.method == 'POST':
  11. if 'file' not in request.files or 'upload_folder' not in request.form \
  12. or 'similarity_threshold' not in request.form or 'time_label' not in request.form:
  13. flash('所有字段都是必填的')
  14. return redirect(request.url)
  15. file = request.files['file']
  16. upload_folder = request.form['upload_folder']
  17. similarity_threshold = float(request.form['similarity_threshold'])
  18. time_label = request.form['time_label']
  19. if file.filename == '' or not allowed_file(file.filename) or not os.path.exists(upload_folder):
  20. flash('无效的输入')
  21. return redirect(request.url)
  22. if file and allowed_file(file.filename):
  23. filename = secure_filename(file.filename)
  24. ref_image_path = os.path.join(current_app.config['UPLOAD_FOLDER'], filename)
  25. file.save(ref_image_path)
  26. results = process_files(upload_folder, ref_image_path, similarity_threshold, time_label)
  27. return render_template('result.html', results=results)
  28. return render_template('index.html')
  29. @index_bp.route('/uploads/<filename>')
  30. def uploaded_file(filename):
  31. return send_from_directory(current_app.config['UPLOAD_FOLDER'], filename)