我在上传文件夹中显示照片时遇到问题。 我有一个表单,用户可以输入标题,描述和上传图像,然后将其插入数据库。我可以显示我刚刚在模板上添加的所有数据,除了图像,只有X而不是图像。
PS。 image已成功下载到uploads文件夹,并且文件名已成功添加到数据库中。它只是不显示在页面上。
app.py
#route to content page
@app.route('/dashboard', methods = ['GET', 'POST'])
def dashboard():
error = None
form = MessageForm()
if form.validate_on_submit():
filename = secure_filename(form.photo.data.filename)
form.photo.data.save(os.path.join('uploads/', filename))
new_message = BlogPost(
form.title.data,
form.description.data,
form.photo.data.filename,
current_user.id
)
db.session.add(new_message)
db.session.commit()
flash("Your recipe was successfully posted. Thanks!")
posts = db.session.query(BlogPost).all()
return render_template('dashboard.html', posts = posts, form = form,
error = error)
else:
posts = db.session.query(BlogPost).all()
return render_template('dashboard.html', posts = posts, form = form,
error = error)
模板
{% for post in posts %}
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-5 masonry-item">
<div class="box-masonry"><a href="#" title="" class="box-masonry
image with-hover-overlay">
<img src="uploads/{{ post.photo }}" alt="" class="img-responsive"
</a>
<div class="box-masonry-hover-text-header">
<h4> <a href="#">{{ post.title }}</a></h4>
<div class="box-masonry-desription">
<p>{{ post.description }}</p>
<p><strong>{{ post.author.name }}</strong></p>
</div>
</div>
</div>
</div>
{% endfor %}
答案 0 :(得分:1)
来自Flask Doc:
要为静态文件生成网址,请使用特殊的&#39;静态文件&#39;端点 名:
url_for('static', filename='style.css')
该文件必须作为static / style.css存储在文件系统中。
在你的情况下你应该使用:
{{ url_for('static', filename='uploads/' + post.photo) }}