Python 加载烧瓶图像时遇到问题

Python 加载烧瓶图像时遇到问题,python,flask,Python,Flask,我上传了项目中相册的文档。İ图像上传不起作用 Python代码: UPLOAD_FOLDER = '/static/uploads' ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg', 'gif']) app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER #Album form def allowed_file(filename): return '.' in filename and \

我上传了项目中相册的文档。İ图像上传不起作用

Python代码:

UPLOAD_FOLDER = '/static/uploads'
ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg', 'gif'])

app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

#Album form
def allowed_file(filename):
    return '.' in filename and \
           filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS

@app.route("/admin/fotografAlbumu", methods=["GET", "POST"])
@login_required
def upload():
    if request.method == 'POST':
        if 'file' not in request.files:
            flash('No file part')
            return redirect(request.url)
        file = request.files['photo']
        # if user does not select file, browser also
        # submit a empty part without filename
        if file.filename == '':
            flash('No selected file')
            return redirect(request.url)
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            import pdb;pdb.set_trace()
            return redirect(url_for('uploaded_file', filename=filename))
    return render_template('/admin/galeri.html')
HTML代码:

<form method="post" class="col-12" enctype="multipart/form-data">
                 <ul class="row">
                     <li class="col-xs-6 col-lg-12" style="border: none;">
                            <div class="form-group">
                                    <input id="input-id" type="file" name="photo" class="file form-control" multiple data-preview-file-type="text" data-allowed-file-extensions='["png", "jpg"]'>
                             </div>
                     </li>
                 </ul>
                 <button type="submit" class="btn form-control btn-default">Kaydet</button>
                </form>

输出:当我在页面上选择图像并上传它们时,它们会重定向到同一页面,并且不会加载图像。我该怎么办?我工作了2-3天,但我找不到解决方案。

我花了几分钟让它工作起来,给你:

python:

import os
from flask import Flask, request, render_template, send_from_directory, redirect, url_for
from werkzeug.utils import secure_filename

app = Flask(__name__)

UPLOAD_FOLDER = 'static/uploads'
ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg', 'gif'])

app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER

#Album form
def allowed_file(filename):
    return '.' in filename and \
           filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS

@app.route("/photo", methods=["GET", "POST"])
def upload():
    if request.method == 'POST':
        if 'photo' not in request.files:
            flash('No file part')
            return redirect(request.url)
        file = request.files['photo']
        # if user does not select file, browser also
        # submit a empty part without filename
        if file.filename == '':
            flash('No selected file')
            return redirect(request.url)
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            return redirect(url_for('uploaded_file', filename=filename))
    return render_template('/add_photo.html')

@app.route('/uploaded_file/<path:filename>')
def uploaded_file(filename):
    print(filename)
    return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
html:


主要问题是您试图从表单中取出文件,但表单只有一个名为photo的字段

您能确认上传的照片显示在/static/uploads中吗?此外,在html中显示图像的行在哪里?显示目录中的所有图像:当我选择多个图像时,仅加载1个。当我选择多张图片时,如何录制所有图片?
 <form method="post" class="col-12" enctype="multipart/form-data">
 <ul class="row">
   <li class="col-xs-6 col-lg-12" style="border: none;">
     <div class="form-group">
       <input id="input-id" type="file" name="photo" class="file form-control" multiple data-preview-file-type="text" data-allowed-file-extensions='["png", "jpg"]'>
     </div>
   </li>
 </ul>
 <button type="submit" class="btn form-control btn-default">Kaydet</button>
</form>