我正在尝试预览要上传的图片。我正在使用此处显示的上传表单
class Upload_Form(Form):
date = DateField('Date on Certificate', validators =...)
image = FileField(validators=[DataRequired()])
对于这一点非常重要的是图像FileField。这是与上传相关联的html。它扩展了一个基础html
{% block content %}
<form action="" method="POST" name="upload" enctype="...">
<p>{{ form.image.label }}<br>{{ form.image }}</p>
...
{% endblock %}
我需要使用python flask来预览图像,或者找到一种方法从FileField中的文件中提取URL以使用JS显示图像。我尝试过form.image.url,但只返回一个空字符串。我知道如何在JavaScript中执行此操作但我无法理解如何将其存储在数据库中,因为我使用的是Python烧瓶框架,它需要从类Upload_Form传递到FileField中。我只是很难将它翻译成python烧瓶,而不是JS。这是我在烧瓶中提取文件的地方。
@app.route('/upload', methods=['GET', 'POST'])
def upload():
form = Upload_Form()
if request.method == "POST" and form.validate_on_submit():
if img and os.path.splitext(img.filename)[1] in ALLOWED_EXTENSIONS:
try:
div_id = Division.query.filter_by(category=form.category.data).first().id
except AttributeError:
div_id = None
c = Certificate(div_id=div_id,user_id=g.user.id, status=False)
db.session.add(c)
db.session.commit()
...
return render_template('upload.html', title='Upload successful', form=form)