[英]I am having trouble loading the Flask image
我在项目中上传了相册的“ 上传文件”文档。 İmage上传不起作用。
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天,但找不到解决方案。
我花了几分钟使它工作,然后您就可以开始了:
蟒蛇:
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:
<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>
主要问题是您试图从表单中获取file
,但是表单中只有一个名为photo
的字段。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.